2012年09月UNIX22: sed (457) TOP カテ一覧 スレ一覧 2ch元 削除依頼
【正社員募集】ドワンゴ大卒未満限定で技術者採用【学歴重視】 (465)
itojunの軌跡 0x03 (314)
Exim (390)
[test] 書きこみテスト 専用スレッド 11 [テスト] (595)
GNOMEの質問はここに書き込め! (614)
UNIXを使ってたら萌える芸能人 (347)

sed


1 :04/05/28 〜 最終レス :2012/10/27
sedスレッド

2 :
2

3 :
sed -e '1,2d' -e '4,$d'

4 :
sed -E -e '=' test | sed -E 'N;s/\n/: /' | sed -E 's/^([0-9]: )/0\1/'
これをパイプを使わずに表現したいんですけど、どうすれば出来ますか?

5 :
sedのスクリプトで?
sed -f hoge test
なかんじ?

6 :
>>5
はい。
#!/usr/bin/sed -f
{
=
N
s/\n/: /
s/^([0-9]: )/0\1/
}
としてもうまく行かなくて悩んでいます。

7 :
適材適所という言葉があるだろうに…
% awk '{printf "%02d: %s\n", NR, $0}' test

8 :
例えば
aaa\
bbb\
ccc
ddd\
eee
の\が出てくると次の行と連結するスクリプトは
#!/usr/bin/sed -f
:cont
/\\$/{
N
s/\\\n//
b cont
}
の様にすれば
aaabbbccc
dddeee
のようにうまく出力されるのに、
#!/usr/bin/sed -f
{
=
N
s/\n/: /
s/^([0-9]: )/0\1/
}
みたいに、先頭に2桁の行番号と:を追加するのはなぜうまく出来ないのか
疑問に思ったのです。

9 :
ム板のawkスレの住人だな?

10 :
http://pc5.2ch.net/test/read.cgi/linux/1067815570/

11 :
【貝】第1回シェル講座【殻】
http://pc5.2ch.net/test/read.cgi/unix/1016372780/
☆シェルスクリプトを勉強するにあたって☆
http://pc5.2ch.net/test/read.cgi/unix/989659936/
ここらへんに合流すれば? そういう話題結構でてるよ
これだけではなんなので。日本語で読める sed に関する文献としては
「MS-DOS を 256倍使うための本 Vol.3」が No.1 です。おすすめ

12 :
古いけどそこそこ良くまとまったサイトを紹介してみよ。
ttp://www.gcd.org/sengoku/sedlec/

13 :
メールの中身で
添付ファイルのデータが開始するbase64という文字列があった後のデータ全部切り抜いて出力したいんですが
sedで可能でしょうか?

14 :
>>13
http://www.gcd.org/sengoku/sedlec/12.txt

15 :
From: hoge hage <hoge@moe.com>
↑ これの < > の中に入ってるメールアドレスを、抜き出したいんですが、どうすればいいでしょうか?

16 :
sed 's/.*From.*<\(.*\)>.*/\1/'
じゃダメ?

17 :
>16
ありがとうございます
後は加工して使おうと思います。

18 :
ど素人です。
sedでMIFESのグローバル置換みたいなことってできないですか?
あるディレクトリに存在する複数のファイルをワイルドカード指定で入力して
一括して置換してもとのファイルにリダイレクトしてやるみたいな。
下記のイメージで(下記はとおらないですけど・・)。
sed -e 's/aaa/zzz/g' < * > *
1日中ぐぐってぐぐってもがいたけどわかりませんでした。すごいひと教えてください。

19 :
すごくなくてもできる。とりあえず、シェルスクリプトすれに池。
もっと短くできるが、何をやっているかわかりやすく説明するのをかねて↓
find -type f | while read file ; do
mv ${file} ${file}.backup
cat ${file}.backup | sed -e "s/aaa/zzz/g" > ${file}
done

20 :
次世代sed登場
ttp://news.tbs.co.jp/newseye/tbs_newseye1037945.html

21 :
>>19
おわっ。あっさりできたっ。どうもありがとです!
シェルスクリプトすごい便利。勉強しなきゃですね・・。

22 :
bash上でなのですが、
hoge=`echo ../tmp/work.c | sed 's/\//\\\//g'`
を実行しようとすると、
sed: -e expression #1, char 9: Unknown option to 's'
となってしまうのは、なぜですか?
/を\/に置換したいだけなのです。

23 :
>>22
sed 関係ないやん
\ → \\

24 :
うーん、確かにシェル向けのネタなのかもですが、
echo ../tmp/work.c | sed 's/\//\\\//g'
だけだと動くのがよくわからなくって。

25 :
いいことを教えてあげよう。
's@hoge@hage@g'とやってごらん。

26 :
command not found
でした・・・って、そういう意味ではないのかな・・・。

27 :
s/..../..../g は s@....@....@g とも書ける
という意味

28 :
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda5             9.6G  844M  8.3G  10% /
というのを
~$ df /home/ | sed -n -e "2s/.*\(\d*\)%.*/<\1>/p"
として10を取り出したいのですがうまくいきません
結果は
<>
となります
どうすればいいのでしょうか?

29 :
space, tab を区切りにして何番目の要素って選択したほうがいいんじゃないの。

30 :
先頭の.* が % の直前までマッチし、
\d* が長さ0、
% が % にマッチ、
最後の .* が残りの部分にマッチしてるからね。

31 :
そもそも \d なんて使える sed あんの?

32 :
sedsedesedesedesed

33 :
sed(sede){3}sed

34 :
hosyu

35 :
しーずか〜な〜しーずかな〜
さーとのーあ〜きぃ〜
おーsed〜にきぃ〜のみが〜
お〜ちる〜よ〜は〜

36 :
http://www.chimimo.com/sed/

37 :
sedは日暮れて〜夕波小波〜

38 :
temp.txt中の"-"と"+"以外の文字を空白に変換するには

sed 's/[^\-\+]/ /g' temp.txt

でうまくいきますが、temp.txt中の"-"と"+"と数字以外の文字を空白に変換するには
どう記述すればよいのでしょうか
sed 's/[^\-\+0-9]/ /g' temp.txt
では文法エラーになってしまいます。

39 :
>>38
+と−の順番が逆でした。
以下に訂正。
temp.txt中の"-"と"+"以外の文字を空白に変換するには

sed 's/[^\+\-]/ /g' temp.txt

でうまくいきますが、temp.txt中の"-"と"+"と数字以外の文字を空白に変換するには
どう記述すればよいのでしょうか
sed 's/[^\+\-0-9]/ /g' temp.txt
では文法エラーになってしまいます。

40 :
うちの OS だと、ならんけど?
まあ
sed 's/[^-+0-9]/ /g' temp.txt
って書いた方が簡潔だとは思うが。

41 :

>>40
> うちの OS だと、ならんけど?
> まあ
> sed 's/[^-+0-9]/ /g' temp.txt
> って書いた方が簡潔だとは思うが。

Cygwin についてくるsed です。
sed 's/[^-+0-9]/ /g' temp.txt
これは問題なく正常動作しました。


42 :
>>41
>
> >>40
> > うちの OS だと、ならんけど?
> > まあ
> > sed 's/[^-+0-9]/ /g' temp.txt
> > って書いた方が簡潔だとは思うが。
>
>
> Cygwin についてくるsed です。
>
> sed 's/[^-+0-9]/ /g' temp.txt
>
> これは問題なく正常動作しました。
>
>
sed 's/[^+-0-9]/ /g' temp.txt にするとだめです。
+と0の間にあるコードと解釈されるらしい。

43 :
>>42
> sed 's/[^+-0-9]/ /g' temp.txt にするとだめです。
仕様です.
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=re_format&dir=jpman-5.2.0%2Fman§=0

44 :
すまん url 化けてた.
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=re_format&dir=jpman-5.2.0%2Fman§=0

45 :
なんでperl使わないの?

46 :
>>45
どうやって、perl おぼえた?

47 :
なんでperl使うの?

48 :
らくだ本に一万円投資しちゃったからとか。

49 :
どうやって perl インストールしたの?

50 :
インストールできなかったの?

51 :
FreeBSD の sed って c コマンドの後のコマンドも実行するね。
これってバグじゃね?

52 :
>>51
意味不明.

53 :
perlは、難しいので
sed & awkでやって逝く事にしました。

54 :
適材適所ってこともあるんだよもん。

55 :

若者は、PERLを消化して部位部位いわせsed&AWK何それ?状態
案外、sed&AWKを学ぶ必要がなかったりする?
新しいのについて行けずに、たちどまってしまったオッサンは、sed&AWK
せめてPERLぐらいやる。だだでえくいっぱぐれてるのに
両方の言語を使用したことのあるエキスパートに意見を伺いたい
sed&AWKなら簡単にできてPERLなら難しい処理例
PERLなら簡単にできてsed&AWKなら難しい処理例
若者、おっさんに向けての指針等など

56 :
sed 's/hoge/hage/'
のほうが
perl -pe 's/hoge/hage/'
より短い。

57 :
ぐれてないでまず日本語を学ぶ >だだでえくいっぱ

58 :
大岡山のキティに英語の勉強しろといわれたので、伊藤和夫先生のテキストで勉強しました
-xx-xx-xxなperlは、使用しない故スティーブンス先生にも意見を聞きたいので
>>59
召還ヨロシク

59 :
>>58は浪人生

60 :
sed 's/い/お/g' file
で、
file内の「いっぱい」が「R」に置換されるのは、
正 常 !

61 :
s/い/お/g ←「g」付きだと置換結果は「おっぱお」じゃないの?

62 :
質問です。bashにてGnu sed ver4.0.9を用いて
echo hoge,uge,hage,age,sage | sed 's/uge,.*\?,//g'
を実行しました。
hoge,age,sage
が出力されることを期待したのですが、実際の出力は
hoge,sage
でした。
*や+の後に?を指定すると、例えばperl,pythonなんかでは
*や+は non greedy となるので、
sedでもそうなるものと考えてたのですが、何か間違っていたのでしょうか。
また、*や+を non greedy とするにはどうすれば良いのでしょうか。
よろしくお願いします。

63 :
>>62
man sed しました?
man sed の SEE ALSO 見ると、
GNU sed が regex(7) (POSIX 1003.2) に (大体) 準拠してるとあると思いますが、
POSIX 1003.2 に non greedy な量指定子は無いです。
何か他の方法をとる必要があるかと。

64 :
ありがとうございます、とりあえず>62に関しては
's/uge,[^,]*,//'
とすることにします。

65 :
abc xyzをaxbyczにしたいのですが

66 :
>>58
> 大岡山のキティに英語の勉強しろといわれたので、伊藤和夫先生のテキストで勉強しました
だれ?

67 :
sed 's/abc xyz/axbycz/'

68 :
>>65
echo abc xyz |sed -e "s/^/%/; :ll; s/[%]\(.\)\(.*\) \(.\)\(.*\)/\1\3%\2 \4/; tll; s/%//;"

69 :
>>66
>だれ? は、
>大岡山のキティ
>伊藤和夫
の以上2つのうち誰の素性を知りたいのだね?

70 :
68は「大岡山のキティ」本人で複数の人間に「英語の勉強しろ」と言っていた、
という可能性は無いの。

71 :
>>70
「大岡山のキティ」に心当たりがあるなら>>66 のためにも、sedのsコマンドで「大岡山のキティ」を痴漢するってのは如何


72 :
GNU sedのVersion 4で、マルチバイトパッチをあてたVsersion 3みたく文字コー
ドを決めうちして変換する(ctype=EUCみたいに)方法はないのでしょうか。
jiskan16.bdfに外字を足してテキスト処理をやっているのですが、行頭に外字の
コードがくると、Version 4.1.4では誤認識してしまうのをなんとかしたいのです
が。

73 :
grepもUTF-8使えるようになって欲すい。

74 :
FreeBSDでutf-8なロケールでgrep使えばOK。


75 :
sedで四則演算系は作れますか? 理由も教えてください。

76 :
宿題は自分で。

77 :
>>72
bashを使っているとして、LANG=ja_jp.eucJP sed -e "s/hogehoge/fugaguga/"
みたいなのじゃダメなの?

78 :
>>76
分からないのならレスすんな。

79 :
煽っても無駄ですよ。宿題は自分で。

80 :
75に答えているので78はレスしないでください。

81 :
>>77
情報小出しですみません。LNAGは設定してます。
ググってもsedの古いソースがみつからなかったので、とりあえずは、Vine2.6
の3.0.2 (だかなんだかの)のバイナリを入れて動かしてますんで、当面は困っ
てはいないのですが、システムのバージョン上げるときに、個別対応する項目
が増えるのは面倒だなと思って質問した次第です。

82 :
>>81
GNU sedは4.xでマルチバイト文字対応が別の形で入ってるからね。
3.Xのローカライズパッチではそれほど厳密には検査されなかった
文字範囲が厳しくなってる可能性がある。
内部的には wide character に変換してごにょごにょしてるんだけど、
外字だとここでひっかかるのかもね。最悪自分でソースに手を入れて
wrapper関数書くしかないかも(外字をPUAにわりあてちゃうとか)。

83 :
>>81
> ググってもsedの古いソースがみつからなかったので、
Ring server にあらかたのバージョンあったよ。
もちろん日本語対応パッチはそこにはないんだけど
(これはほかを探せばある)。

84 :
http://pc8.2ch.net/test/read.cgi/unix/1113664637/298
Nで次の行もパターンスペースに読み込んでいた場合に、
d と D の違いが出る。

85 :
>>84
ありがとう

86 :
>>84,85
Nに加えて、sなどで意図的にパターンスペースに改行を入れることもあるよ。
Nを行の先読みに例えれば、後者は行の差込み挿入のような意図で行うんだけど。
その場合にもdとDの違いが出る。

87 :
半角かなをsedで一括置換しようと
下のようなスクリプトを試しましたが
うまくいきません
解決策を教えてください
s/タ/\\={a}/g
s/ツ/\\={\\i}/g
s/ト/\\={u}/g
s/ニ/\\uc{r}/g
s/ヌ/\\uc{\\={r}}/g
s/ハ/\\uc{l}/g
s/゙/\\d{h}/g
s/ワ/\\d{m}/g
s/フ/\\.{n}/g
s/ホ/\\~n/g
OSはwindowsXPですが
sedはunix由来だからここで伺ってます
すみません

88 :
>>87
nkf じゃだめなん?

89 :
>>87
UNIX上のsedなら、それでちゃんと動作するよ。

90 :
>>88
すみません、nkfで上記の置換を行う方法がわかりません
よければ教えてください
>>89
可能であれば、windowsで動作した方がいろいろと好都合
ですので...

91 :
>>90
UNIX上のsedでは動作

sedの文法はそれで間違ってない

Win版のsedのバグまたは仕様

UNIX板でこれ以上聞いても無駄

92 :
88、89さん申し訳ありません
wiodows上でのsedでも87のsed置換は可能です
私の勘違いでした
改めて質問させていただきます
設定済みmeadowを使って
リージョンを設定して
M+shift+|で87のsedスクリプトを走らせた場合
\になってほしい部分が化けてしまいます
原因や対処方法がおわかりに方がいらっしゃったら
ご教示願えませんでしょうか?

93 :
set-process-coding-system

94 :
>>93
ヒントありがとうございます
上述したように
リージョンにコマンドを渡す方法を使う場合
set-process-coding-systemの記述は
どこに、こんな風に記述すればよろしいのでしょうか?
頭が悪いので設定方法がわかりません
よろしければ教えてください

95 :
>>94
ずっと効くから.emacs に書いとけ。

96 :
>>92
半角かなばっかりの文書を置換するのはできるみたいですが
漢字が混じってたら漢字は化けます
対処方法がありますか?

97 :
>>96
> 対処方法がありますか?
おまえ朝鮮人のにおいがぷんぷんするんだが。
やっぱり朝鮮人だったか。おねがいだから、国に帰ってくれ。

98 :
sed /^$/q
が「最初の空行までを出力する」ということで、メールのファイルからヘッダ部分を
抜き出すのに使えることがわかったのですが、その逆「最初の空行から後を出力
する」のはどうするのがよいでしょうか?
「sed ではなく○○を使え」とかいうことになるのかもしれませんが……

99 :
sed '1,/^$/d'

100 :
>99
なるほど。「最初から空行までを削除する」と読むわけですか。
98の「空行が見つかったら終了する」も奥が深いと思ったのですが、まだまだ精進が
足りませんね。ありがとうございました。

101 :
age

102 :
1行野郎どっさり
http://www.student.northpark.edu/pemente/sed/sed1line52.txt

103 :
$ cat hoge.txt
A\textrm{1}\textrm{23}\textit{456}B
A\textrm{1}\textit{23}\textrm{456}B
のようなファイルがあるとして
\textrm{}を取り除いて
A123\textit{456}B
A1\textit{23}456B
を取り出したいと思い
$ < hoge.txt sed 's/\\textrm{\(.*\)}/\1/g'
と書きましたが,括弧の対応を外側から取るようで
A1}\textrm{23}\textit{456B
A1}\textit{23}\textrm{456B
と出力されてしまいます.
うまい方法はありませんか?

104 :
{\(.*\)}の部分が最長マッチしちゃんだから、ここのマッチが}で切れるよう
{\([^}]*\)}に変えればいい。

105 :
>>104
なるほど!
どうもありがとうございます.

106 :
コマンドラインオプションの -n がよく理解できないんですが、どういう場面で使えばいいんでしょうか

107 :
matchしたところだけくださいってな場面

108 :
sedを「セド」と呼ぶぽ

109 :
設定ファイルのコメントを除くときとか

110 :
sedってホールドスペースは1個しか使えないの?

111 :
>>110
yes

112 :
>>111
否定疑問文だから、英語で答えるなら
"No" が正解だろ。

113 :
>>110
はい。

114 :
>>111-113
Thank you all.
知恵と勇気と愛でなんとかしてみる

115 :
否定疑問文に
「んなことない」みたいな答え方はどうしたらいい?

116 :
>>115
■スレッド立てるまでもない質問スレッド Part112◆
http://academy4.2ch.net/test/read.cgi/english/1136133816/

117 :
112は最近英語を知った厨房にすぎない

118 :
>>115
Yes. と答えればいいだけ。

119 :
>>115
「んなことない」= "There is no such Japanese zither."

120 :
@

121 :
ウナコーワ足んない

122 :
深夜上げ

123 :
ウムムム

124 :
同じ文字が3文字連続していたら表示したいのだが

125 :
>>124
http://pc8.2ch.net/test/read.cgi/unix/1039165754/600

126 :
grep, sed, awk
http://www.shuwasystem.co.jp/books/wwwsrch/cgi-bin/content/794/index.htm
この本ってどうですか?
単なるマニュアル以上の情報は載ってる?

127 :
このシリーズはなんとなく印象が悪いので手にとってないな。そういえば。

128 :
教えてください。
awk,sed,シェルを使い、カンマ区切りのファイルの1カラム目と2カラム目をキーに、
あるファイルに含まれる行を削除するにはどうすればよいのでしょうか?
例)
--aaa.csv--
111,222,333,444
555,666,777,888
999,000,111,222
--file1.txt--
111222
555666
の場合、aaa.csvより下記行のみほしい。
999,000,111,222
ご存知でしたら、ご教授ください。
よろしくお願いします。

129 :
>>128
sed 's/\(...\)\(...\)/^\1,\2/' file1.txt | egrep -f- -v aaa.csv

130 :
>>129
突っ込みだけでスマン。それだと、
111,222999999999,333,444
なんていうのがaaa.csvにあると、これも削除されるぞ。
数字の桁数が自由か固定かあいまいな>>128がいけないんだが、
sedの置換先は /^\1,\2,/ みたいなんの方が安全と思う。


131 :
>>129-130さんありがとうございました。
大変、参考になります。
私の説明がいけなかったのですが、
aaa.csvの1カラム目と2カラム目は固定ではなく、自由です。
ですので、
--aaa.csv--
11111,2222,333,444
55,666666,777,888
のような場合もあるのです。
また、file1.txtのほうも固定ではなく、
--file1.txt--
1111111222
555666
2233333
とスペースが入っている場合すらあります。
度々で恐縮ですが、
ご存知でしたら、ご教授ください。
よろしくお願いします。


132 :
>>131
仕事で必要ならコンサルタントを雇いなさい。

133 :
perl かなんかで書いちゃった方が早いよ。

134 :
sed,awk=perlかなんか

135 :
職場のマシン、perlが入ってなかった・・・ orz

136 :
この場合は、sedよりawkなんかな?
awkで書いてスピードアップのためのawkccしてしまうとか。

137 :
ご存知でしたら、教えてください。
Solarisのawkで、変数に対しての比較に正規表現が使えないのですが、
よい方法をご存知の方がいましたら、教えて下さい。
nawkなら、上手くいくのですが、awkでは無理なのでしょうか?
また、Linuxのawkなら、上手くいきました。
よろしくお願いします。
例)下記の場合、./test.shを実行すると、test.awkの正規表現を使用している部分[if ( $7 ~ HENSU )]
でエラーになってしまいます。
--------------------test.shの中身--------------------
#!/bin/sh
HENSU="3A"
cat testdt.txt | \
awk -f test.awk HENSU=${HENSU}
exit 0
-----------------------------------------------------
--------------------testdt.txtの中身--------------------
aaaaabbbbcccdddeeeeeffffffgg3Aggggghhhhhhhiiiii
-----------------------------------------------------
--------------------test.awkの中身--------------------
BEGIN{
FS="\t"
}
{
if ( $7 ~ HENSU )
{
print $0
}
}
-----------------------------------------------------

138 :
>>137
awk -f test.awk -v HENSU=${HENSU}
じゃね?
確認はできんが

139 :
ある文字列を
現在時間+引数
に置換したいのですが、どのようにすればいいですか?
perlを使えば簡単なんだけど、職場のマシンでperl が入ってなかった(汗)
ちなみに、sed とawk は使えるみたいです。

140 :
>>139
引数によるけど、dateコマンドが使えてたら、OKでは。
$ date +%R
00:45
$ date --date '6 min ago' +%R
00:39
という感じで引数を与えるといけると思う

141 :
入力ファイルを書き換えることはできる?
% sed 's/ABC/abc/' input.txt > output.txt
よくある上のようなプログラム(と呼ぶのかな?)で、
出力をoutput.txt
じゃなくてinput.txt のファイル自身を書き換えたいんだけど、可能かな?
つまり、余計なファイルは出力させたくないんだよ。

142 :
>>141
a.in-place オプションが使えるバージョンのsedを使う
b.inplaceというコマンドをつかってみる
c. (rm hoge.dat; sed 's/aaa/bbb/' > hoge.dat) < hoge.dat
あるいは
http://pc10.2ch.net/test/read.cgi/unix/1157601611/708-727
あたりを参照

143 :
>>142
情報サンクス
a. の方法を用いました

144 :
問題解決したようだけどこぴぺして編集
・-i オプションをつかう
・-i オプションがないsedをつかっているなら in-place editing 対応の sed の導入を検討する
・ed をつかう
・perl を使う
・一時ファイルを必要としないファイル命名法を検討する
http://www.idaemons.org/projects/inplace/  を使う
・(rm hoge.dat; sed 's/aaa/bbb/' > hoge.dat) < hoge.dat

FreeBSD の標準 sed に -i オプションが取り入れられたのは 4.7R でそれ以前には無い。
NetBSD の標準 sed には -i オプションは無い。 
OpenBSDの(ry
MacOSX の 標準 sed は FreeBSD 由来なので元になるバージョンに依存する。
MacOSX 10.3以降は FreeBSD 5.1R由来なので、 -iオプションはある。
以前のGNU sed には in-place editing 機能はない (Changelog によると 2001-09-25 ) (3.02には in place オプションは無い)


145 :
>>144
まとめ乙

146 :
あってもなくてもいい追加
HP-UX 11i Version 2: September 2004
http://docs.hp.com/ja/B2355-90851/sed.1.html
AIX 5L Version 5.2
http://inetsd01.boulder.ibm.com/doc_link/en_US/a_doc_lib/cmds/aixcmds5/sed.htm
SunOS 5.10
http://docs.sun.com/app/docs/doc/819-1210/6n3j74jsr?q=sed&a=view
いづれも 標準 sed に -i オプションは無い

147 :
irix
http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/u_man/cat1/sed.z&srch=sed

148 :
仕事で root してる人に質問です。
皆さんどれぐらい仕事で sed スクリプト書いてます?
スクリプトの後々のメンテナンスと、既に周囲に読める人があまり
居ないこととを考えると、s での置換以外では perl を使うか、そ
うなったらもう全部 perl にした方がいいのかなと最近思ったりし
ます。
6行の sed スクリプトを書いたのですが、コメントが 8 行になっ
てしまって。。。

149 :
sedで複数行書くのは犯罪だ。awkで書こう

150 :
そんなん読めないやつに管理まかせちゃいかんよ。

151 :
>>148
すぐに読めなくても、それがsedのスクリプトであることを書いておけば、
perlを使えるひとならちょっとの手間で読めるようになるでしょ。
そうでなければ>>150ということに。
それから、6行のスクリプトのコメントが8行になっても、それはそれでいいじゃないか。

152 :
sedの複数行は本当に頭痛がしてくる。
perでlさえ可読性悪いと言われてるのにその比じゃない。
個人的趣味以外で書いてはいけない

153 :
sed のコードのそばに、
それを perl なり awk なりで書いたものを
コメントとして残せば
・可読性→クリア
・コメント行数→クリア
・メンテ→工数倍w

154 :
s2pでいいじゃん、とかおもったりおもわなかったり

155 :
sedで千行あるファイルの
100行目から150行目を
抜き出すには
どうしたらいいですか

156 :
sed -ne "100,150p"

157 :
sed -n 100,150p

158 :
単語の置換をしたいんだけど、どうしたらよいでしょうか

具体的な例で言うと、あるソース中の int を char に全置換したい
んだけど 単純に sed "s/int/char/g" だと printf まで変わって
しまうから それは避けたい。
「単語」の条件は 英数字+アンダースコア (\w+) であること。
これ絶対FAQだと思うんだけど、 「sed 単語 置換」 で検索しても
答にたどり着かなかったのですよ。 困った。

159 :
perl -pe 's/\bint\b/char/'

160 :
>>159 アフォか

正解:

sed 's/\<int\>/char/g'

161 :
>>159
ありがとうございました!
うまくいけました。

162 :
\< \>で思い出したけど、HP-UXのgrepではこれ使えんのだよな。
同じregexpライブラリを使っているなら、sedでも使えんな。

163 :
スレタイ読まずに書き込んで感謝されちゃったよ
こういうのを
いたたまれない気持ち
っていうのかな

164 :
1
2
3
4
というtemp.txtをsed N temp.txtとすると
1
2
3
4
になるのはわかるのですがsed n temp.txtにすると
2
3
4
にならないのはどうしてですか
夜も眠れません

165 :
sed -e N -e 's/^/X/' -e 's/$/x/'
sed -e n -e 's/^/X/' -e 's/$/x/'

166 :
下記のように、置換する文字に変数って使えないんでしょうか?
設定ファイル100個飛ばしてしまったorz
forでループして、一気に変えたいんですが、$mlとそのまま置換されて
しまいます。このままだと、全部手がきです(T.T)
どなたかお助け下さい。
ml=hoge
sed 's/$ml/foo/'

167 :
>>166
それはsedじゃなくて、シェルスクリプト側の話だね。
' ' じゃなくて " " を使う。

sed "s/$ml/foo/"

168 :
そしてmlが"/"を含んでいて破滅する。

169 :

できました!(T.T)
ありがとうございました。一時は徹夜を覚悟しました。
本当に助かりました。ありがとう!

170 :
>>168
まさにそれ。
やりたいのは、特定の文字列を
現在のディレクトリ位置に置換したいということなんですが、
シェルスクリプトで
sed s/hoge/$PWD/g < file1.txt > file2.txt
と書くと、エラーになってしまいます。
($PWDが/を含んでいるから)
だれかうまいやり方わかりませんか?

171 :
sed "s|hoge|$PWD|g" < file1.txt > file2.txt

172 :
>>171
はやっ!ありがとー!
でもごめんなさい、実は明後日まで試せる環境がないので、
また試せたら報告に来ます。

173 :
sedでラベルを1行スクリプトに組み込むのは無理ですか?
sed '/^$/!{N;};/^$/{s/\n //g;}
Nが終わったあとにスクリプトの最初に戻したいのですが美味くいきません・・・

174 :
【参院選】民主党から、在日コリアンの期待背負った金氏(民団幹部)が立候補…在日参政権訴え
http://news22.2ch.net/test/read.cgi/newsplus/1184227903/l50

175 :
>>173
普通にできるけど。:label; hoge; b label みたいに。

176 :
報告おくれましたが、無事できました。
本当にどうもありがとう!

177 :
>>173
-e
>>175
普通じゃない

178 :
>>177
>>173 の質問読み直せ。-e で連結する話とは違うぞ。

>>175 が正解。たぶん、>>173 はラベルの後のセミコロン忘れてできなかったんだろう。

179 :
省略せずに結果を書くと、

sed ':label;/^$/!{N;};b label;/^$/{s/\n //g;}'

↑な。これで何をやりたいかは知らんが。

180 :
>>178
ラベルの後に続けて書けるのはGNU含む一部のsedのみ。
だから普通じゃない。
普通はラベルごとに切って -e で繋ぐ。
sed -e ':label' -e '/^$/!{N;};b label' -e '/^$/{s/\n //g;}'

181 :
タブ文字(0x09)だけをカンマに置換する方法はありますか?
バージョンはGNU sed の 3.02です。

182 :
普通に sed 's/\t/,/g'

183 :
>>182
3.02は\tを使えません

184 :
>>181
普通にタブ文字を入れる。

185 :
普通に sed 's/ /,/g'

タブのところは、シェル上なら Ctrl-Vに続けて入力。
シングルクォート必須。

なお、上の sed をコピペしても、TABが表示上で変換されてるので動かないと思う。

186 :
>>184
T=`echo -ne "\t"`
sed -e "s/$T/,/g"
で出来ました。
ありがとうございました。

187 :
>>186
そんなことしなくても、普通に >>185 でできるわけだが、、
何をわざわざ大変なことしてるだよww

188 :
>>185 では動きませんでした。よく知りもせず、確認もせずに回答しないでください。

189 :
>>187
あとで自分のシェルプログラムを読むときに
見えないタブコードのままだと誤解をしそうだし
Ctrl-Vという入力方式が使えない端末もあるので
あえて大層に書きました。

190 :
改行がCRLFをLFにするには、
sed -e 's/\r//' < target > out や
sed -e 's/^M//' < target > out
で出来るんだけど、逆にLFをCRLFにするにはどーしたら良いですか?
sed -e 's/\r\n/\n/'
sed -e 's/^M^J/\n/'
sed -e 's/^M\^J/\n/'
いずれもだめでした。
sedは GNU sed 4.1.5版 です。

191 :
>>190
普通に sed 's/$/\r/'

192 :
出来ました。

193 :
おお、ちょうどいい!もれも似たようなことで
CR/LFを<BR>にしたかったw
dクスでつ190-191

194 :
正規表現にマッチした文字列だけを出力したい というとき
たとえば文字列の前の方の数字だけ取り出すときは
sed -n "s/^\s*\([0-9]*\).*$/\1/p"
みたいに 正規表現にマッチした全体をマッチした部分で置換する
ようにやってたのですが、いちいち置換するのは 格好悪いので
部分\1だけ出力するような格好いい書き方ありませんか?

195 :
perl -nle 'print $1 if /\b(\d+)/'

196 :
>>194
GNU grep の -o オプションを使う。
ほかの grep だったらごめんなさいw

197 :
sedスレのつもりだったんだけど、まあいいや。ありがとん。

198 :
あるテキストファイルの1行目〜最終行の1000行前までを
取り出したいのですが、どのようにすればよいでしょうか?
(ちょうど tail -n 1000 tmp.txt で取り出せない部分を
簡単に得たいのですが)

199 :
awk '{a[NR]=$0}NR>20{print a[NR-1000]}'

200 :
まちがえた。
sedでやっても美しくならないから、awkで
awk '{a[NR]=$0}NR>1000{print a[NR-1000]}'

201 :
sed -n '1h;1!H;1001,${g;P;s/[^\n]*\n//;h}'

202 :
sedでやらなきゃいかんの?

203 :
>>202
sedスレなので

204 :
なんでsedスレを選んだんだろ。

205 :
そこにsedがあるから

206 :
>>200
>>201
レスありがとうございました。大変助かりました。
今回はawkを使おうと思いますm(__)m
>>202
すみません、sedを覚えたての初心者なもので・・・

207 :
sed -n ':b;1001,${P;N;D};N;bb'
詰め

208 :
下のような行があったとして
command, --いろいろなコメント
command, だけ残して、--いろいろなコメント(--から後ろ)を全部削除
したいのですがどうすれば良いんでしょうか?
本を読んでもよくわかりません。どうかお助け下さい。

209 :
sed 's/--.*//'

210 :
消えました!
ありがとうございました!>>209
ほんと助かりましたです。

211 :
質問ばかりで恐縮なのですが、もうひとつ質問があります。
line...$
な行があったとして、^line を見つけた時に、下のようにおしりに
HOGEな文字列を追加したい場合はどうすれば良いのでしょうか?
line... HOGE$
ほんと、勉強不足で申しわけありません。オライリー本を片手にやってる
のですが、どうしてもわかりません。

212 :
>>211
sed '/^line/s/\$$/ HOGE$/'
address について調べれ。

213 :
>>211 の $ は文字じゃなくて、正規表現の $ の意味ではないのかと

214 :
>>212-213
ありがとうございました。
sed '/^line/s/$/ HOGE/'
でうまくいきました。addressについても勉強してみます!

215 :
仮ファイルを使わずに
入力ファイル自身を書き換えることは出来ますか?

216 :
-i

217 :
//exec($command,$arg);
とコメントアウトされた行をアンコメントしたいんだけど
sed 's/\/\/(exec\(\$command,\$arg\);)/\\1/' -i hoge.php
とかやっても思ったとおりに置換されない
(とか$とか/とかをうまくエスケープできてないだけなのか
どうなのかがよくわかんないんだけど、どこが間違ってる?

218 :
sed -e 's@//\(exec(\$command,\$arg);\)@\1@'

219 :
教えて下さい。

12345kkk6789
23456kkk4321
32456kkk9876
のようなテキストファイルが複数あり、
各行のkkk以降(kkkも含めて)を削除したいです。
1日考えてダメだったので、だれかお助け願います。


220 :
sed -e 's/kkk.*//'

221 :
ありがとうございます。

222 :
sed -e '500,$d' の500の部分を変数にすることって出来ますか?
例えば、sed -e '$no,$d' みたいな感じで実行するとエラーになって困ってます。

223 :
>>222
シングルクォートをダブルクォートに変えてみな。

224 :
>>223
どうもです。
sed -e "$no,$d"という風に変更してみましたがダメでした…
そもそも変数を指定することが出来ないというオチなのでしょうか?

225 :
>>224
あ、>>222 をちゃんと見てなかった。
$d は変数じゃなくて行末とデリートか。
なら、後ろの $ はエスケープが要るな。
sed -e "$no,\$d"
> そもそも変数を指定することが出来ないというオチなのでしょうか?
sed 自身が変数を解釈しているわけではない。
この場合は sed に引数を渡すシェルが処理をしている。
bash を例にとって説明すると >>222 の形式では
シングルクォートの中身は展開されずに
そのままの文字列が sed に渡される。
ダブルクォートにすると中身を展開するので
$no と $d を変数と解釈して設定された値に
入れ替わったものが sed に渡される。
この辺の挙動をちゃんと知りたいのならおまいさんが
使っているシェルの man を読め。

226 :
>>225
エスケープしたら一発で成功しました!
225さんの説明を読んで、また一つ理解が深まりました。
どうもありがとうございました!

227 :
>>215
>>144

228 :
sedの置換について質問 (GNU sed 4.x)
タブ(\t)は置換できるのですが改行(\n)が置換できません。
例えば # cat a.txt
aaa
bbb
aaa(タブ)bbb
3行目の(タブ)区切りは置換できるけど1行目と2行目にマッチした文字を置換できません。
どうやったらできますか?

229 :
何をどう置換したいのだ?
sed のスクリプトのほうも示してほしいのだが

230 :
a.txtの内容
----------
aaa
bbb
aaa bbb
----------
このa.txtを
----------
eee
fff
aaa bbb
----------
↑のように置換したい。
sed -i 's/aaa\nbbb/eee\nfff/' a.txt
これで出来ると思ったのですが出来なかったので。
どうやったらできますか?

231 :
-e 's/^aaa$/eee/' -e 's/^bbb$/fff/'

232 :
>>231
アフォかw

233 :
訂正
a.txtの内容
----------
aaa
bbb
ccc
bbb
----------
このa.txtを
----------
aaa
bbb
ccc
ddd
----------
↑のように置換したい。
この文字は何行目にあるか不明だとして
一番下のbbbをdddに置換することはできますか?

234 :
>>233
sedじゃなきゃいかんの?

235 :
>>233
ほれ、解答だ

sed -n '${p;q};:s; N;s/ccc\nbbb/ccc\nddd/;P;D;b s'

236 :
>>234
sedじゃなくてもいいですけど、置換できますか?
>>235
エラーがでました。
extra characters at the end of q command

237 :
>>236
俺のところではエラーにならないけどな。
わかりやすいように改行を入れるとこんな感じ

sed -n '
${
p
q
}
:s
N
s/ccc\nbbb/ccc\nddd/
P
D
b s'

238 :
>>236
sed じゃなくてもいいならこっちで。
シェルスクリプト総合 その9
http://pc11.2ch.net/test/read.cgi/unix/1187130302/

239 :
1行で出来ませんか?

240 :
>>238
わかりました。ありがとう。

241 :
sed -n '${p;q;};:s;N;s/ccc\nbbb/ccc\nddd/;P;D;b s'

242 :
>>241
できました。ありがとう。

243 :
sed -n "m(_ _)m|-_-|(っ゚ロ゚)っ"

244 :
sed: 1: "m(_ _)m|-_-|(っ゚ロ゚)っ": invalid command code m

245 :
( を に痴漢したいんだけど
$ cat hoge | sed -e "s/\\\(/ /"
ってやってもなんか駄目っぽい
なんで?

246 :
>>245
シングルクォートならどうよ?
$ sed -e 's/(/ /' hoge

247 :
sedはバックスラッシュいらない。
グループ化したいときはいるけど。

248 :
>>246
シングルクォートならできるんだけど、なんかこう
どうしてもダブルクォートでやりたいお年頃なんです

249 :
大人になりましょう

250 :
ある単語(例:foo)をhoge-"
と置換したいんですが、
sed -e "s/foo/hoge-"/g"
だと当たり前だけどエラーが出ます・・・。
ダブルクォートとかって、どうやって指定したらいいんでしょう?

251 :
sed -e "s/foo/hoge-\"/g"

252 :
>>251
おお!ありがとう!!できましたヾ(゚∀゚)ノ
しかし>を認識しなくなってリダイレクトが使えなくなった・・・。
Winに組み込んだSedだからなのかなぁ・・・。

253 :
winのコマンドラインパーサーは腐っているから-fで渡したほうが精神的によろしい。

254 :
お邪魔します^^
あのスレの>>144さんありがとうございます
私の目標と現状を書いておいたほうが良いのかな
★Aタイトル一覧表を作る(”タイトル”の部分はそれぞれ対応したファイルにリンクを貼る)
★Bタイトル一覧表に対応したデータファイルをタイトルの数だけ作る
但し★Bを作成する前に全てのデータを1ファイルに集約した後ソートして
重複チェック、データ欠如のチェックしたいです
・データファイルはPC内にある既存のファイルから必要な部分を抽出して作成する
●必要な部分●
@<title>〜</title>(元ファイルは1行の場合と2行なたは3行の場合がある)
A<object 〜 /object>(元ファイルは1行の場合と2行なたは3行の場合がある)
B<span>〜</span>(備考欄に使おうと自分で全てのファイルに付け足しました現在はタグだけです)
(元ファイルから抽出と新規作成にタグだけ付け足しても同じ内容になります。どちらでも構いません)
他のところで教えてくれた方が居て★Aの作成と、★Bの@ABの個別取得できています
★Aの一覧表からテスト作成のリンクファイルに飛ぶことも出来ています
★Bのデータファイルを作れないで居ます
私のレベルなんですが他の言語スレで呆れ返られるくらいの初心者で
単語の名前や意味は殆どわからないです
結局、自分のやりたいことはファイル操作であることが最近知りました
それまでの経緯でHTMLとジャバスクリプトと正規表現の本
それからperlの本は自宅にあります
sed全くわかっていないです^^;
単語の意味がわからない事だらけで意味を調べて廻る事でせいいっぱいで
なかなか前進しないままです
とり急ぐわけではないのですが
もしよろしければお時間の都合の良いときだけで結構ですので教えて頂けましたら幸いです
どうぞよろしくお願い致します

255 :
>>ALL
Win版のsedの話なんだけど、sedスレがUNIX板とLinux板に
しか無いので誘導させてもらったけどいいっすか?
>>254
PerlやJavaScript(JScript)がわかるなら、そっちでやったほうがいいね。
マッOさせたい物が1〜3行に渡るって所でモレにはわからん。
できるかもしれないが複雑になるような希ガス

256 :
144さん
ありがとうです
お声かけて頂いただけで嬉しかったです
まだ解説本を購入して10日程です
全部読んでいないのでどこまでできるかわかりませんが
自力でもう少し頑張ってみます
本当にありがとうございました^^
お疲れのところすいませんでした

257 :
よく流れがわからんが
やりたいこと全部を一気に教えてもらうとかせずに
知りたいポイントをしぼって一つずつ質問すれば答えてくれると思うよ。

258 :
各板で暗黙のルールみたいなのがあるんだろうか
やりたいことは先に書いた通りなんだけど
プログラム板というところで初めはHTMLの読み込み方を聞いてみたんですよ
そしたら「何がやりたいのかよくわからん。もっと詳しく。」ばかりレスが付くんです
それで私が「ファイルの読み込みです」と返事をすると「具体的にここに書かないとわからない」
これを繰り返しているうちに「後出し条件だ」とか「それはプロにしか出来ないレベル」とか
結局何も返答しないのに威張ってばっかり。
まるで解答者(のフリをして答えない)人の相手をするばかりで全く進まない
解答者らしき人を問い詰めていったら
私のような人間を探してネタをパクッタリいい人を装いながら客として誘導したり
最初から教える気は全く無いって事でした。無駄な時間ばかり過ぎていくので
板を変えてプログラマー板ってとこへも行ってみたのですが
そこでも「もっと具体的に」「わからん全部書け」「質問以前に問題あり」
散々小ばかにされては解答は無し。
やはり同じような輩が蔓延っていました
2chで教えて貰おうとするのが間違っているのかもしれません
自分は今までパソコンソフトには全く興味が無かったので
こういう汚い連中が露骨に威張り倒してるところがあるとは知りませんでした
他の板でもひどい言葉はよく見かけますが
大体はまともな意見が多いので誰かがフォローしてくれたりしますが
パソコン関係は解答者が圧倒的に優位なようだ
「只で教えてるんだぞゴルァ」とかも言われました(一度も解答しない人にw)
只で教えたくないならスルーでいいのではと言い返したら
質問者としてなって無いとか言い出す始末
そういうことでまとめて書いておいたんです
解答者の振りをする連中は答えないのに質問者をいじって遊んでるんです
でわ

259 :
>>258
そのとおりです。
回答が欲しい場合はエスパースレへ

【エスパー】くだ質【エラーメッセージ不要】(1)
http://pc11.2ch.net/test/read.cgi/unix/1207042632/

260 :
うわぁ…これはひどい。
書き込む前に自分のレスを読み返してないのか?
全然まとまって無いし、誤字脱字だらけ。
スクリプト書く前にやりたい事を
簡潔な日本語で書く練習をした方が良い。
いや、マジで。

261 :
>>258
暗黙のルールという訳じゃないけどできるだけ楽して、人から聞きだそうという態度の人は煽られるね。
あなたにそういうつもりは無くても例えば、せっかくこのスレまで誘導したのに、
>sed全くわかっていないです^^;
>もしよろしければお時間の都合の良いときだけで結構ですので教えて頂けましたら幸いです
これだけ見ると、1から10まで教えろって言ってるように見えるよ。
色々なスレを見ればわかるが、質問をして、あなたのように煽られる人と、
煽られない人がいるが、その違いがわからないのであれば、
「2chで教えて貰おうとするのが間違っているのかもしれません」という事。

262 :
>254が辿ってきたのは俺の知る限りこの辺かな。
http://pc11.2ch.net/test/read.cgi/hp/1205922529/35
http://pc11.2ch.net/test/read.cgi/php/1203935151/275
http://pc11.2ch.net/test/read.cgi/tech/1186030400/664
http://pc11.2ch.net/test/read.cgi/tech/1172242542/126
http://pc11.2ch.net/test/read.cgi/software/1205309656/109
童謡のいぬのおまわりさんみたいな状況だな。

263 :
みんなレスありがと
答えてくれたことにお礼を言うのは当たり前だと思うんだけど
今までのスレは答える前から上から目線で結局答えてくれない
この人たちは解答を知らないのでは?と思うようになったんですよ
昨日も私が質問しているように見えるので他の質問に答えれないだろ
あの質問もお前だろって言うので
「それ自分じゃないよその質問には答えてあげればいいよ」とかやりあってたら
その質問者が現れた
当然のように解答者にはペコペコ謝ってる(これからも解答してもらうために)
この先、解答は期待できない私には一言もなし
初心者用の解説本をヨンから来いと言われるんだけどファイル操作は初心者用ではわからないようだ
手持ちのperlは3冊ある(超初心者用、初心者用、命令逆引き辞書)
perl解説本ではファイル操作の解説に至るまでにCGIの解説ばかりだ
やっとファイル操作の解説まで読み進めたら5ページほどで終わってるorz
perlでファイル操作は中級レベルの解説本を買わなければいけないのかと思うようになった
他の言語を調べてみた
CとかjavaとかAjax
初めのほうからファイル操作は解説している
ただ解説に使っている言葉自体が命令を使って解説しているので自分には全く理解不能だorz
>>262
それ以外にも軽く10スレ以上は廻ったよ
それで何か言語を覚えなきゃダメだなってわかったんだ

264 :
結局、私の言いたかったのは答えれないのに答える振りしてまで
優位に立ちながら出てこなくてもいいのではないのかってこと
どうせ答えないのにいかにも「解答欲しけりゃぺこぺこするのは当たり前だろカスR」的な態度とって
それで解答しなくても解答者を装ったほうがいいってことなのだろか
何もわからないことまでしゃしゃりでてこなくてもってことです
偽解答者なら私でも今からすぐにできそうだw

265 :
ちなみに某スレでdieがわかんないような逆引き辞書だよ
って記載した後に解説本に載ってたサンプルが動かなかったので
なぜエラーになるのかわからないって書いたら
難しいことには答えない
でも何か答えなければって強迫観念でも沸き起こるのか
解答者を装いながら勉強するのも手段なんだろうけど
なにがなんでもしゃしゃり出てくるのは過疎っているからだろね
悪循環板だ

266 :
>>261の意味がわからないようだね。
>何もわからないことまでしゃしゃりでてこなくてもってことです
あんたが自由に質問をしていいように、他の人間もそれに対して自由にレスを付ける事ができる。
「わからないなら、しゃしゃり出てくるな」というのは単なるあんたの都合でしょ?
そうでなければ、そいつらを自分より低レベルだと見下したいのか。
そういう事をされて、このスレでクダを撒き、関係の無い人に八つ当たりをしているあんたは、
そいつらと同類という事に何故気付かない?
もう一つ。「自分」と「2ちゃんねる」のやり取りだと思っているようだけど、
レスをしているのは「個々の人間」だ。

267 :
あれだろ、渋谷までいきたいんですが教えてください。
って質問して
電車で、とかタクシーで、とか徒歩で、とか教えてくれてるのに
切符の買いかたがわかりません、とか
タクシーって何ですか?とか
徒歩って何って読むんですか?とか
馬鹿な質問してるから飽きれられてるんだろ。

268 :
人生相談ならよそでやってくんないかな。
sedと関係ない。

269 :
>>263-265
http://www.wdic.org/w/WDIC/%E5%8D%8A%E5%B9%B4ROM%E3%81%A3%E3%81%A6%E3%82%8D
>今までのスレは答える前から上から目線で結局答えてくれない
まともに回答してくれた人間に随分失礼な言い草だな。

270 :
>>263
>それで何か言語を覚えなきゃダメだなってわかったんだ
わかったけど勉強する気が無いわけ?
次から次へと言われるがままにPerl、JavaScript、サクラエディタ、awk、sedと
目先で楽できそうな物を追っかけてるから目的が達せられないんだ。
>初心者用の解説本をヨンから来いと言われるんだけどファイル操作は初心者用ではわからないようだ
参考書として勧められてない「独習Perl」が手元にあるが丁度半分まで読んだ所で扱われているが。
努力をしないで結果を得たいなら、それなりの報酬を出して人を募集するか、
質問専用掲示板で、具体的にサンプルを出し、これこれこーゆースクリプトを
書いて下さい、と依頼するかのどちらか。
http://okwave.jp/

271 :
sedは数年でなくなる

272 :
何いきまいてんの?
パソコンソフトって結局ゲームソフトみたいなもんでしょ
その操作を知ってるからって威張るもんじゃないよね
自分で作ったソフトじゃないんだから
ゲームソフトの使い方だったら攻略本としてでるんだろうけどね
ソフトの使い方を先に知ったからって偉いと思ってんならスルーすればいいじゃん
メモ帳やペイントみたいなもんで使い方覚えたらどってことないと思う
いざやり始めた人間をいじくって遊ぶなんて恥ずかしいね

273 :
やぁやぁ我こそはsedの達人なり〜〜
そやって表歩いてみ
誰か「キミ凄いんだ」と声でも掛けてくれたらいいねw
我こそはプログラマーなり〜〜〜〜腹いてー

274 :
高校、大学と印刷関係の工場でバイトしてたんだ
当時職人と呼ばれる連中はタバコくわえながら
あごで指図しては怒鳴りあげたりやりたい放題
その頃何も知らなかったので「○○さん技術あるから仕方ないよね」みたいな空気があった
ん?
ちょっと待て!
機械の操作だけじゃん
今や家庭用のプリンターでも当時の技術を遥かに超えている
車にの運転とかもそうだよね
昔は女性が免許持って運転してると目立つしなんかあったら「女の運転わ・・」とか言われたもんだ
今の乗用車の性能で言えば当時のレーサーを余裕でぶっちぎれますw
そんな感じで機械やソフトを開発してるのは偉いと思うけど
操作で自慢されても5年後にはもっと簡単で3日でものになるソフトが出てるかもしれないよ

275 :
以後放置で。

276 :
あらら、自分の非を指摘されて、それが正しいもんだから逆切れしちゃった訳ね。
まともに反論できないからって、お前の母ちゃんでべそーは無いよな(笑)

277 :
自分で作ったソフトでも無いのにw
使い方知ってるくらいでそこまで威張るか普通?
そんなことぐらいで天狗になる奴リアルではいないよw
ゲームの上手い子供が威張り倒してるのとどう違うんだ???
パソコンソフトの使い方ぐらいでこんなに意地になる連中マジで知らんわw
教えたくなければ知らん顔してればいいのに何が何でも答えるんだね(解答以外はwwwww)
多分、実社会でもずれてんだろなー
キミはた迷惑だと思われてるかもしれないよw
廻りよく見てみw

278 :
何このスレ?

279 :
「教えて君」の見本のような奴だな。

280 :
おもちゃを上手く使いこなせたから自慢してるって程度じゃないな
頭小学生並みの幼児性w
上から目線が笑えるw
こいつ 奴 プ
笑えるwww
言葉遊びできない奴は何やってもダメって典型

281 :
これほどの逸材を埋もれさせておくのはもったいないから age とく

282 :
# >>275がいいと思うんですが。
>>281
そういうことでしたら>>262に追加で、逸材ぶりがよく伝わるスレも。
http://pc11.2ch.net/test/read.cgi/php/1204488452/42-

283 :
これは壮大な釣りなのか?
一瞬、なりすましを疑ったが、>>262,282を見ると、まさに本人だよな。

284 :
sedって文全体からある語句を置換するのは簡単だけど、
最初にマッチする語句だけ置換して後はそのまま出力しようとするとちょっと複雑になってしまうよね。
スクリプトの先頭に戻らない様なループを作らないといけない。

285 :
>>284
遠まわしに「最初にマッチする語句だけ置換をする簡易な方法はありませんか?」
って聞いてるのか?それとも独り言ならチラ裏へ。

286 :
% ( echo hogehoge; echo hogehoge ) | sed '0,/hoge/s/hoge/fuga/'
fugahoge
hogehoge
GNU sed に限るようだが。

287 :
>>286
レスサンクスです。ただ最初の0を1でやった場合はうまくいきませんでした。
s/hoge/fuga/
:loop
p
N
s/.*\n//
b loop
漏れの頭ではこんなのしか思い付きませんでした。
もっとスマートな方法があったら教えてください。

288 :
>>287
/hoge/{
s/hoge/fuga/
:loop
n
b loop
}

289 :
/me ?

290 :
n文字目のxのみyに置換というのはどうすればいいですか

291 :
n文字目のxとは、
行頭から(n-1)個の文字のあとに出現するx のことか?
行頭からn回目に出現するx のことか?


292 :
>>291
参考までに両方ともお願い

293 :
前者です

294 :
>>291
後者ですが、念のため両者の場合について教えてください

295 :
行頭から4文字目のxをyに
echo xxxxxxxxxx | sed 's/^¥(...¥)x/¥1y/'
行頭から4個目のxをyに
echo x-x-x-x-x | sed 's/¥([^x]*x[^x]*x[^x]*x[^x]*¥)x/¥1y/'
とかとか?
4を変数にするのは漏れには粍

296 :
()ってのは条件になるん?

297 :
ありがとうございます
確かに.×4みたいに表現できたらかっこいいですが
これで文句なしです!

298 :
>>297
×4は無理っぽい。
echo x-x-x-x-x- | sed 's/\(\([^x]*x\)\{3\}[^x]*\)x/\1y/'

299 :
>>298
Solarisのsedじゃ動かんな。

300 :
01101,"0600031","ホッカイドウ","サッポロシチュウオウク","キタ1ジョウヒガシ","北海道","札幌市中央区","北一条東",0

01101,"0600031","ホッカイドウ","サッポロシチュウオウク","キタ1ジョウヒガシ","北海道","札幌市中央区","北一条東",0
この第5フィールドの半角英数だけ(2個有る場合もあり)全角にしたいのですが
どのようにsedを作ればいいでしょうか?

301 :
>どのようにsedを作れば
釣りポイントはここですか?

302 :
その形式は、郵便屋の郵便番号データだろ。
エクセルか何かの一覧表をcsvに落としただけの代物だから
そのままでは役に立たないよ。
 そのままDBに格納し、専用プログラムで変換かけて正規化してる。

303 :
aaa.hoge
bbb.hage
ccc.foge
とかいう文字列があって、*.hoge以外にマッチする正規表現って出来るのでしょうか?

304 :
スレ違い。正規表現スレに池

305 :
>>303
その文を素直に読むと、当該文字列にだけはマッチしない
正規表現と読めるが、書き込み子の心情を忖度すると、
sed 's/[a-c]{3}\.hoge/==matched==/' って事かな?
まあ、[a-c]* でも、(aaa|bbb|ccc) でも、[[:alpha:]]* でも、
マッチする表現は無数に有るけど、(・・に、だけマッチする)
を、求めているなら、そもそも*.hoge って見当外れだし、
要するに、何が知りたいのか良く分からん。

306 :
>>305
> >>303
なるほど、ありがとうございます。

307 :
ファイル内の、スペース+改行をスペースのみに置換したいのですが、
どのように記述すればよいのでしょうか。
データ数が数十万行あるため、ファイルを全部読み込んでから
置換する方法では、容量がオーバーしてしまいました。

308 :
>>307
Perl か何かで書いちゃった方が早いんじゃね?

309 :
>>308
環境上、Perlを使用することができないんです。
sedでは難しいでしょうか。

310 :
環境によって違うと思うけど普通の書き方じゃダメなのか?
s/ \n/ /g

311 :
>>310
自分の環境では、\nが認識されませんでした。

312 :
>>311
OSの具体的な名前とかは出さないのな。
s/\
/ /g
では?

313 :
すまん。勘違いした。
sed はPerlと違って、入力したときに改行を取り除いてからパターンスペースに送るから、
そこで改行探しても見つかりっこない。
んで、出力時に自動的に改行は付くし、これを抑制する手段はない。
せめて awk使っとけ。Perlなくてもawkはあるだろ。

314 :
すまん勘違いしてた。
sedはPerlと違って入力時に改行を取り除くから、置換時に改行探したって見つかりっこない。
Nとかで次の入力を読んでくれば間に挟まるけど。


315 :
おまえらマルチに親切だな

316 :
ありがとうございました。
sedでは難しそうですね。別の方法を探してみます。

317 :
微妙に変えてあるとこがうまいな。

318 :
tr -d '\n'

319 :
良く読んで赤面しろw
>>318
>>307
「スペース+改行をスペースのみに置換したい」

320 :
>>307
sed '
:again
/ $/{
N
s/?n//
b again
}
'

321 :
sedの公式ホームページってないのでしょうか
awkは一応gawkがあって一応開発も続いているようですが
sedはどのような状態なのでしょうか?
いつまでたっても最短マッチを搭載しない理由もお教えねがいます。

322 :
そういう機能を追加すると、既存のスクリプトが動作しなくなるから。
ポータビリティを失ってまで実装する必要がない。(それこそ、perlでもawkでも使えばいい)

323 :
なるほど、参考になりました。
もし開発に参加できるなら参加したいと思っていたのですが
そのような理由ならそういったときはperlやawkに頼る事にします。

324 :
>>322
sedに正規表現perl互換モードを搭載すればいいだけなのにね

325 :
GNU sedの-r みたいなので、perlモードがあればいいね。

326 :
>>321
gnu sed 拡張している人たちがいるからそのあたりに乗ってみれば?

327 :
onigsedじゃダメなのか?
つーか、perl -pe でいいじゃん。

328 :
>>321
GNU sed なら
http://www.gnu.org/software/sed/

329 :
>>327
今度はsed互換ではないという

330 :
質問させてください。
sedでホワイトスペースを解除または増やす方法ってあるのでしょうか?

331 :
間違い。ホールドスペースです。

332 :
以下ホワイトベース禁止

333 :
白兵戦になるぞ!

334 :
sedで、
/pattern/r file
ってするとマッチした行の次にfileの内容が出力されますが、
その行の前に出力する方法はないでしょうか?
ちなみにマッチする行は1個しかありません。

335 :
sed -n -e '/pattern/r file' -e p

336 :
ごめん、ダメだった。こっちで。
sed -n -e 'x;p;g' -e '/pattern/r file'
1行目の空行は無視して

337 :
1行めの空白はもう1段 | sed 1d で消せるけど……
入力の最後の1行出てなくない?

338 :
出てなかった。
sed -n -e 'x;p;g' -e '/pattern/r file' -e '$p'
という感じで最後の行を出力することは出来るけど
patternが最後の行の場合だけ、fileの内容が次行に出ちゃう。
自分はギブアップ

339 :
いろいろありがとうございます。
sed 1個では難しいようですね。
patternより前とpattern以後に別けて、
間にfileをcatするしかないのかもしれません。

340 :
sed 2個ならなんとか
sed -e '$aEND' | sed -e '
$d
/pattern/{
r file
N
}
${
P
d
}'

341 :
>>295 の例に似てますが、
バイナリファイル(1行めの)4バイトめを ASCII 文字 0x02 -> 0x03 に
変更するにはどうすればいいでしょう?
# sed -e '1s/^\(...\)\x02/\1\x03/' in > out
ではだめでした。
試した環境は FreeBSD 7.2 です。

342 :
>>341
(dd bs=3 count=1; dd bs=1 count=1 of=/dev/null; printf '¥003'; cat) < in > out

343 :
>>341
sed -e "1s/^\(...\)^B/\1$(printf '\03')/"
でできんかね。^BはC-v C-b入力できるはず。

344 :
>>343
最初の3バイトに改行文字がない保証がないから一般的にはだめそうだな。
やっぱ行指向のsedでバイナリファイルを操作するのは無理があると思う。

345 :
\x02 などは GNU sed の拡張仕様でした。
 # pkg_add -r gsed
 # rehash
 # gsed -e '1s/^\(...\)\x02/\1\x03/' in > out
でできました。

346 :
>>342-344 ありがとうございます。
>>342 の dd を使った方法は大変参考になります。
あと、
 # sed -e '1s/^\(...\)^V^B/\1^V^C/' in > out
でもできました。
^V^B は <Ctrl>V<Ctrl>B 、
^V^C は <Ctrl>V<Ctrl>C です。

347 :
ひとつ、お聞きいたします。
Nコマンドって、最後の行で次行が読めない場合、何もせず終了、
のはずですよね。すると、
sed 'sed ':l;N;bl' <file>
とすると何も出力されないんじゃないかと思うんですが、
私の使っているGNU sed 4.1.5版だと<file>の全部を出力してしまいます。
つまり、「何もせず終了」じゃなくて、「デフォルト出力して終了」
になっているように思われるわけですが、これは、どうなんでしょうか。

348 :
>>347
infoに書いてありました。

349 :
なるほど

350 :
yコマンドで"/"を対象に入れたいんですが出来ないんでしょうか
初歩的ですいません

351 :
>>350
sed y,abc,ABC,
とかできるから、
sed 'y,ab/,ab%,'
もできる。

352 :
そうか、区切り文字変えられるのsコマンドばかりじゃないんですね。
どうもありがとうございました。

353 :
sedでシェルすくりぷとの行つなぎバックスラッシューを消して、繋ぐことできますか?
perlなら-pe "s/\\\n//g"でできます。
edでも、awkでもできれば、教えていただけませんか?

354 :
できる

355 :
できました ありがとう

356 :
できないようですね、残念です。

357 :
sed -e ':lbl' -e '/[^\\]$/b' -e 's/\\$//' -e N -e 's/\n//' -e 'b lbl'
置換パターンに\nを許さない場合は
sed -e ':lbl' -e '/[^\\]$/b' -e 's/\\$//' -e N -e 's/
//' -e 'b lbl'

358 :
踊っているように見えて仕方がない
echo "000000$NUM" | sed -e 's/.*\(..\)\(..\)\(..\)/\1\2\3/'

359 :
sedでファイルのある部分までをファイル1、それ以降をファイル2に出力ってスマートにできませんか?
例えば100行のsample.txtというファイルで、
sed -e "50q" < sample.txt > sample1.txt
sed -e "1,50d" < sample.txt > sample2.txt
の様にするのは無駄におもえてしまいます。

360 :
sed -ne '1,50w sample1.txt' -e '51,$w sample2.txt' < sample.txt
とか?

361 :
split -50 sample.txt; mv xaa sample1.txt; mv xab sample2.txt

362 :
>>360,361
ありがとうございました。勉強になります。

363 :
入力テキストを
1行目の内容 2行目の内容
2行目の内容 3行目の内容
:
最終-2行目の内容 最終-1行の内容
最終-1行目の内容 最終行の内容
という形(隣り合った行の値を空白で連結する)に変換するにはどう書けば
よいでしょうか。
sed -ne '1!p;$!p'
と通せば先頭末尾以外の行を2回出力できたので、
これを2行分ずつくっつければ出来そうなのですが…

364 :
¥n ってどのsedでも使えるんだっけ?
$ seq 1 10 | sed -ne '1!p;$!p' | sed 'N;s/¥n/ /'
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10

365 :
seq 1 10 | sed -ne '1h;1!{H;x;s/\n/ /;p}'

366 :
s/seq/jot/

367 :
unixの基礎概念という本の中に
a 21
is 10
this 3
というtest.txtファイルに対して、
sed 's/\(.*\)\( *\)\(.*\)/\3\2\1/' test.txt
とすると結果は
21 a
10 is
3 this
になると書いてありましたが、実行してみると並びはかわりませんでした。

368 :
>>367
確かに。それじゃぁ一番左側の .* が、最長一致で行全体に一致しちゃうから、
並びが変わらなくて正解。

悪書の書名晒して。

369 :
久野さんらしくないミスだな。
確かに変わらないね。

370 :
>>367
真中の * の直前のスペース、
スペース2つじゃないの?

コピペするとスペースが1つとかになるので注意。

371 :
これかな? http://www.amazon.co.jp/dp/4756144772
久野先生の本だけど、そんなのが混ざってるのか。

372 :
>>371
はいそれです。解説にも
「これはどう読むかというと、『入力行を任意の文字列1と、空白のならび2と、また別の任意の文字列3
にマッチさせ、それ全体を3、2、1の順でつなげたものに置き換える』という意味になる。」と書いてあります。

373 :
>>372
なら、>>370の指摘通りで、キミが間違っている。
× sed 's/\(.*\)\( *\)\(.*\)/\3\2\1/' test.txt
○ sed 's/\(.*\)\( *\)\(.*\)/\3\2\1/' test.txt

374 :
2chに不慣れな感じ

375 :
專ブラなら安価ポップアップでちゃんと表示されるのかな
>>373

376 :
>>372
紙面上に、└┘└┘みたいな感じでスペースの個数は明示してあるの?
明示してないなら紙面が悪いと思うが。

377 :
>>373
空白2個ならいけるのですか。
>>376
そういう、└┘└┘みたいな感じはなかったです。文字数的にも一文字分の感じ
ですし。編集上のミスかもしれませんけど。

378 :
>>376
> 「これはどう読むかというと、『...、空白のならび2と、...
って書いてあるんだろ?

379 :
>>378
それは、¥2 のこと。「スペース2個」のことじゃないよ。

380 :
>>378 空白のならび

381 :
>>378
正規表現を理解してないバカ発見。

任意の文字列 → \1
空白の並び → \2
別の任意の文字列 → \3

と言ってるだけのこと。それとスペース2つ書くのとは意味が違う。

382 :
むしろhtmlのレンダリングを理解していない

383 :
任意の文字列の前か後ろの少なくともどちらかは、任意でない特定の文字・文字列(含^$)でないと困ったことになるということですね?
俺も前それで失敗した。

384 :
sedの話題はこっちへ
くれぐれもシェルスクリプトスレに書き込まないように!

385 :
>>377
\2,\3がφで全体がマッチ
\1に行全体
一つ目が\([^ ]*\)ならよかった。

386 :
AAA BBB=111 CCC=111
この行の111を000に置き換えするのに
sed -e 's/BBB=111/BBB=000/'
とする以外にもっとスマートな書式を教えてください。
GNU sedです

387 :
>>386
sed -e "s/1/0/g"

388 :
>>386
> sed -e 's/BBB=111/BBB=000/'
これじゃ、お題
> この行の111を000に置き換えするのに
を満たさない。
矛盾を含む質問に答えることは不可能。

389 :
>この行の111を000に置き換えするのに
この行のBBB=111だけをBBB=000にする書式でした
すいません。

390 :
スマートの基準がわからないけど、BBBが二度出現するのが嫌なら
sed -e 's/\(BBB\)=111/\1=000/'

391 :
>>386
s/111 /000 / で十分

392 :
AAA BBB=111 CCC=111 DDD=111 EEE=1111

393 :
sed -e /BBB=/{'s/111/000/'}
シェルスクリプトスレで覚えたやり方

394 :
sed -e 's/<space><space>*/<space>/g' test.txt
って動かないんですが?

395 :
動きますよ?

396 :
EUCだとうまく動作しないのだが、これはデフォルトなのかな

397 :
EUCでも問題ないけど。

398 :
そもそも、EUCはそういうツールで不都合がないようにということで作られたわけで。
日本語独特の文節や漢字などに対応しない、というのはあるけど。

399 :
>>396
> うまく動作しない
How?

400 :
<space> ってそのまま打ってるってオチだろw

401 :
>400
そのとおりでした;すいません

402 :
EUCじゃないファイルではうまくいってたのか?

403 :
>402 それは別人です

404 :
偽物ばかり
R

405 :
急に Windows 7 64 bit で ssed が使えなくなっま。

406 :
で?

407 :
xp モードで解決したわけですね

408 :
tab8のテキストをインデントを崩さずに半角スペースに置き換えるにはどうすればいいですか?

409 :
expand -8

410 :
sedで、じゃね。

411 :
エスパーすると質問者は手段はsedじゃなくても良いと考えてる

412 :
それならこのスレで聞かないでしょ。

413 :
sedでもできそうだと勘違いしたからでしょ

414 :
>>410
それなら「expand -8相当の処理をsedでやるには?」って聞くでしょ。

415 :
>>414
expand を知らなかった、という可能性は。

416 :
>>415
というかexpandを知らなかったからこそ
「tab8のテキストをインデントを崩さずに…」みたいな
まわりくどい言い方で聞いたんでしょ。
だからsedに関係なくexpandを回答すれば回答として十分。

417 :
>>408
そろそろ正解を。

418 :
>>416
expandを知らないけどsedを使わなければならない理由があるんだよ!

419 :
すっごく登場しにくくなったけど>>415さんが正解です。
>>409
エスパーさんありがとう。
皆さん混乱させてスイマセンでした。置き換えと言えばsedしか知らなかったので。

420 :
文字列unkoの行を見つけてから文字列chinkoの行まで表示
ってどうやればいいの?

421 :
>>420
当たり前過ぎるから回答は控えるけど、
エスパーすると -n オプション忘れて全部の行が表示されてしまったってオチだろな

422 :
そんなことなくてその当たり前すぎる内容がわからない初心者さんなんでしょう。
回答してあげないなんてひどいね

423 :
>>421
あ、-n だけのことだったんですね。失礼しました。
>>422
そこまで初心者じゃないです。

424 :
自己申告乙

425 :
初心者の土瓶口だけど、chinkoの前の行まで表示 ってのはできるの?

426 :
>>425
/start/,/end/{/end/!p}

427 :
>>426
いや、それは知ってるよ。
そういうことせずに直接○○の行の手前まで指定はできないのか聞いてるんだが

428 :
unkoの次の行から、ってのは難しいのかな・・・

429 :
>>428
startを含まず、endを含む場合
sed -n '1,/start/b; 1,/end/p'

430 :
みんな1行野郎なの? スクリプトファイルは書かないの?

431 :
>>430
スクリプト書くほどならperlで書いちゃう

432 :
perlは英語のマニュアルが読めなくて挫折した。あんときperlがんばっとけばよかったorz

433 :
書くよ

434 :
DTPでテキストの整形するとき、いっぱい痴漢(←なぜか第一候補)するよ。

435 :
>>432
俺はPerlは書籍で覚えたな、ラクダとあと何かUnixツールとして使うための本

436 :
教えてください!
テキストファイルの最後にある空行を削除するにはどうすればいいですか?
$ sed -n ' 105,$p' Ga.inp
search.LowerE -3.000 # default=-3.000 (Hartree)
search.UpperE 20.000 # default=20.000 (Hartree)
num.of.partition 1200 # default=300
matching.point.ratio 0.67 # default=0.67





の様に、最後に無駄な空行のあるファイルがたくさんあって、一括削除したいのです。
ただし、途中にある改行は、ファイルの見やすさのために残しておきたいのです。
ed で言えば
$;?^.?;+,$d
で出来ると思うのですが、sed では';'や'+'が使えず、どうしてよいやら・・・

437 :
パターンスペースが
空行だったらホールドスペースに追加
空行でなかったらホールドスペースを出力後にパターンスペース出力
最後の連続空行はホールドスペースに収まったままで終わる。
とか考えてみたがあってるだろうか。

438 :
Nコマンドを使っていて必要な最期の行を全部すっとばしたことが、私にもありました

439 :
>>437
多分やりたいのはそれだと思います。
具体的に同書けばいいのでしょう?

440 :
もうawkかなにかで済ましてるだろうけど練習
437とは違うやり方になった
sed -n -e '
:loop
/^\n*$/{
N
b loop
}
p
'

441 :
>>440
ありがとうございます!
うまくいきました。

442 :
gsedですが、
ブラケット開きがあって、ブラケット閉じ以外のものが1つ以上あって、ブラケット閉じがある場合、
で、これどこがおかしいのでしょうか? ★☆が現れてくれないんですけど。
s/\[\([^\]][^\]]*\)]/[★\1☆]/g

443 :
>>442
バックスラッシュが余計
sed 's/\[\([^]][^]]*\)]/[★\1☆]/g'

444 :
ありがとうございます。
つまり、[ と ] の間にあるものはどんなものでも
「これは文字です」と宣言しなくてもいい(\が要らない)ということですか。
やってみます。ありがとうございました。

445 :
>>444
そうなんだけど、] の場合は、[^ の直後にある場合のみ
普通の文字の ] とみなすという仕様。( [ の直後でも同様)

446 :
テキスト   [aaa], [bbb] <あああ>の(アアア)と<いいい>の(イイイ)
欲しい結果 ★aaa☆, ★bbb☆ ★あああ☆の★アアア☆と★いいい☆の★イイイ☆
s/[<[(]\([^<>[]()][^<>[]()]*\)[>])]/★\1☆/g
予想はしたけど、まるで反応してくれません。
半角の約物3種類は欲張ったかなあ、と1つずつやってみているところです。

447 :
>>446
>>445 に書いてあること読めよ。

[^ の直後に ] を置かないと、普通の文字としては認識されないんだよ。
[^....] の中の .... の順番を変えろということ。

448 :
>>446
s/[[<(]\([^]<>()][^]<>()]*\)[]>)]/★\1☆/g

449 :
>>447-448
ああ、すみません。言葉が足りませんでした。読んだ上でわざと変えてみたのです。

450 :
え?

451 :
ごめんなさい。>>446は[]の中の[]に全部\を付けたつもりでした(このミスが大元ですね)
エスケープすればどの位置にあっても文字とするというsedを使っていたのと、
最長一致の正規表現も使っていたので混乱してしまいました。
「直後」を何度も言われていたのに、「直後『だけ』」に思いが至りませんでした。

452 :
gsed で、置換コマンドの s を間違えて a と入力したスクリプトを実行したら、
一行ごとにその行が挿入されていて笑ってしまった。
a コマンドなんて知らなかったわ。

453 :
笑えんなぁ。

454 :
笑って許して♪

455 :
gsed って置換するときにタグの数が合ってなくてもエラーが出ないのね。

456 :
aなんて、edの基本じゃん!

457 :2012/10/27
マニュアルでも最初のほうに来ちゃうしね
TOP カテ一覧 スレ一覧 2ch元 削除依頼
FreeBSD?OpenBSD?NetBSD (356)
【tc厨が】bash3.0登場!!【嫉妬する】 (228)
tcpdumpを用いて他人の通信を盗聴したら犯罪 (344)
今Monterey Marriotに居るよ (603)
今時、Solaris使ってる馬鹿って・・・プププ (404)
/dev/null (272)
--log9.info------------------
勇者王ガオガイガー総合スレ Number.57 (635)
東京ミュウミュウ part32にゃん (447)
機動警察パトレイバーNo37 (896)
だぁ!だぁ!だぁ! だいありー61 (698)
3丁目のタマ うちのタマ知りませんか? (648)
ギャラクシーエンジェル Dish212 BD-BOX絶賛発売中 (723)
あしたへフリーキック (507)
『スクライド』146thも個人的には嫌いじゃあない (718)
超時空要塞マクロスU (608)
ストロバリーパニック104 (287)
おにいさまへ…5 (587)
BDですわ! Z.O.E Dolores,i crisis02 (268)
【悟空】ドラゴンボールZ超115【早く来てくれー!】 (373)
学校の怪談 その89 (545)
ファンタジックチルドレン 38人目 (645)
ママレード・ボーイ part.5 (839)
--log55.com------------------
野田佳彦「韓国はアジアのニューリーダー」
朝鮮人を都知事にしたら日本国は終わりだな
おまいら好きな政治家っている?
元防災担当大臣 鴻池祥肇 恥を知れ!
山岡賢次「麻生・中山支持の国民は極めて危険」
柳沢厚労相「子無しの安倍首相夫人は欠陥装置」
世襲制限のできない自民党ではもう駄目だ!
 品格のない政治家は誰、投票→