おまいら! sed の使い方教えて下さいm(_ _)m

1 :sed@修業中:03/11/03 08:26 ID:62bfq5Tp.net
Linux使ってるならsedあたりはサックって使えるようになりたい。
だけどなかなかまとまった日本語の解説がすくなくて苦労する。
ここで皆の智恵をだしつくして欲しい!

日本語解説サイト
http://www-6.ibm.com/jp/developerworks/linux/010202/j_l-sed1.html
http://www-6.ibm.com/jp/developerworks/linux/010216/j_l-sed2.html
http://www-6.ibm.com/jp/developerworks/linux/010223/j_l-sed3.html

英語だとここからたどれる
http://sed.sourceforge.net/index.html

14 :login:Penguin:03/11/03 20:29 ID:IeH/wT1r.net

例題ネタとしては、GNU sed-4.0.XのinfoのExampleにいろいろあるよ。

60 :login:Penguin:04/01/10 10:57 ID:siaa18gv.net

$ awk -f m6.awk emp.dat

*** Employee Statistics ***
Employee list: Beth Dan Kathy Mark Mary Susie
6 employees
3 employees worked more than 15 hours.
total pay is 337.5
average pay is 56.25
Highest hourly rate: 5.50 for Mary
Who was the last: Susie 4.25 18

ほかにも、 awk は 組み込み 関数や、
if-else文、 while文、 for文などを 使った 複雑な 計算や
プログラム制御を おこなう ことが できます。

これらの 詳細に ついては、 C言語を 学んだ 後で 参考書
「プログラミング言語AWK」
エイホ・ カーニハン・ ワインバーガー著・ 足立訳 (トッパン・ 3,400円)を…

88 :login:Penguin:2005/11/28(月) 02:00:25 ID:LhHzdh/r.net

疑問なんだけど、デフォルト入力とかで
行をファイル(標準入力でもいいけど)から読み込んでくるとき、
パターンスペースに格納されるテキストには
その行が本来持っていた末尾の改行は保持されるの、
それとも捨てられてるの?

74 :login:Penguin:05/02/20 12:09:51 ID:SQt2t8zo.net

>>71-73
感謝!

キモの¥(.*¥)と¥1の意味が理解できないorz
精進します

69 :login:Penguin:05/01/27 01:33:29 ID:rr1tF+uZ.net

保守

157 :login:Penguin:2011/03/23(水) 08:12:08.06 ID:sSsfO317.net

/^FILE “¥(.*¥)” WAVE/{s//¥1/;y/ /_/;s/.*/FILE “&” WAVE/}
とかすればよいのでは?
まぁ、同じく置換が3回入るので効率はあまり変わりませんが…

105 :login:Penguin:2007/04/21(土) 21:05:07 ID:Xv/Wu2nU.net

とりあえず、何をどうしたいのか、問題をはっきり定義してくれ。
そうすりゃ、見本スクリプト書いて説明してやるよ。
ややこしいことやるなら、ほんとはPerlのほうが使いやすいけど。

81 :login:Penguin:2005/08/22(月) 23:00:28 ID:/oDO6UGR.net

おれは引数の中身までは分からんが

ls | sed ‘hogehoge’ | rm -rf

ってことだろ。

177 :login:Penguin:2012/08/30(木) 23:35:50.57 ID:2CJ6F/qn.net

>>176
スレ違いっ><
失せろっm(__)m

103 :login:Penguin:2007/04/18(水) 00:02:42 ID:znSq4roi.net

>>1

42 :login:Penguin:03/11/11 15:51 ID:nI9atQTW.net

>>41
すでに一般的になっている拡張子を横取りする辺り
さすが某社な感じがしたね。
いまじゃ拡張子docをテキストに使う人なんていなくなったなぁ。

58 :login:Penguin:04/01/10 09:17 ID:siaa18gv.net

vi と awk + join + sort
で、RDBMS ができるようだ。

#!/bin/sh
join -1 1 -t: /etc/passwd /etc/ftpusers ¥
| sort -t “:” -n -k 3 ¥
| awk ‘BEGIN {FS=”:”; OFS=”¥t”;} ¥
$7 != /bin/false && $3 >= 1000 ¥
{print $1, $3, $4, $7;}’

awk の変数 OFS がなぜかFreeBSDで通らないのが謎。

って、ここはsed刷れだった。
sedもいじってみよう。

53 :login:Penguin:03/11/29 02:39 ID:MWd5bA5L.net

普通はシェルコマンドや正規表現を先に覚えるべきでは???
まぁあまり人のことは言えないが(w

127 :login:Penguin:2008/10/28(火) 00:04:49 ID:gCa9/U26.net

ありがとうございます。
この例で使えれば大丈夫なのですが、
条件として¥nは使えるのでしょうか。

154 :login:Penguin:2011/02/20(日) 12:41:41.79 ID:u91J24A/.net

本来ならばFILEを探した後、”を探し、その後”が出てくるまで
スペースをアンダースコアに置換するのが良いのでしょうが、難しくて私にはムリです。
で、上記の案で逃げました。

166 :login:Penguin:2012/06/07(木) 10:18:04.20 ID:srWmu+na.net

1行目の後にtestを入れるつもりがエラーになります。
>cat text.txt| sed -e ‘1atest’
sed: 1: “1atest
“: command a expects ¥ followed by text

シェルの中で、置換と追加をやりたので、実際はこうなってます。
sed -e ‘s/Before/After/g’ ¥
-e ‘1iコメント’ ¥
  -e ’12iコメント’ ¥
 元ファイル > 新ファイル

行追加だけエラーになるのですが、
どこがおかしいのでしょうか?

126 :login:Penguin:2008/10/28(火) 00:00:22 ID:LqvgIl+t.net

>>125
詳しい条件書かないとわからんよ。

s/b¥n/b/g

その例には使えるけど。

76 :login:Penguin:05/02/25 23:31:47 ID:CmL+OxWl.net

sedでカレントパスにある、重複名ファイルを削除すること出来ますでしょうか?

113 :login:Penguin:2008/06/03(火) 06:01:17 ID:OIB6+9BR.net

>>110
できるよ。
以上。
はい、次。

160 :login:Penguin:2011/09/22(木) 12:25:27.36 ID:KTYpcKqF.net

>>159
こんなに下がっているスレで質問するときは上げた方がいい。誰にも気が付かれないかも知れない。

それ本当にsedのスクリプト?自分にはedのスクリプトに見えるが、それを見つけたページが分からないと何とも。

分かってると思うけど、sedは一行ずつ順番に処理していくから、後戻りは出来ないし事前に最終行も分からない。
だから、工夫が必要で下のようになる。分かりやすく汎用的に書くならsedスクリプトを書くしかないね。
sed ‘1{N;N;N;N};$!{P;N;D};s/hoge/piyo/g’ file
sed ‘1{x;d};2,4{H;d};5{x;G};$!{P;N;D};s/hoge/piyo/g’ file

でもこれは、嫌だな。スクリプトで書くと分かり易いんだけど…
tac使っていいのなら、tac | sed ‘1,5s/hoge/piyo/’ | tacって書けるけど遅いだろうね。

52 :sed@修行中:03/11/29 01:56 ID:FhRoB8U6.net

ぬぬぅ

これは早急にシェルスクリプトを習得せねば
なんかわかんないけどすごく便利なことしてそうな予感。

38 :sed@修行中:03/11/10 23:12 ID:ytRwFQ/P.net

http://ime.st/www.gcd.org/sengoku/sedlec/

拡張子がdocになってるけどlessでもみれるから
私はそれぞれのファイルを全部catでマージして
拡張子をtxtに変更してtknamazuから検索できるようにしている。
かなり平易に説明してくれてると思うよ。

120 :login:Penguin:2008/08/02(土) 00:47:41 ID:+VO1N7E+.net

age

176 :login:Penguin:2012/08/30(木) 21:48:28.92 ID:kbI/S7Ao.net

>175
catコマンドで横に結合できるのでしょうか?><

150 :login:Penguin:2010/11/14(日) 21:29:00 ID:CtwAJPsE.net

(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)
(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)
(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)
(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)
(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)(^^;)

151 :login:Penguin:2011/02/20(日) 11:30:28.89 ID:u91J24A/.net

だれもイナイですね。
cueシートに埋め込まれたFILE名に含まれるスペースをアンダースコアに置換しました。
かなり強引です。はじめてsedを使いました。もっと賢いやり方を教えてもらえれば幸いです。

/^FILE /{s/ /_/g;s/_WAVE/ WAVE/;s/FILE_/FILE /}

124 :login:Penguin:2008/08/05(火) 20:51:25 ID:X/szKwVr.net

grepの場合、改行がない最終行に対しては、改行を付けて出力するね。

75 :71:05/02/20 12:28:33 ID:9r4p9Jy7.net

ああ、hogeは可変なのか…
だからs/^/¥”/とかしてたわけね orz

63 :login:Penguin:04/03/15 22:06 ID:cMKAgcb5.net

!/usr/bin/perl -p
if(/(¥d+)¥.¥d+/) {
if($1 > $sec) {
$sec=$1;
$subsec=1;
} else {
$subsec++;
}
s/¥d+¥.¥d+/$sec.$subsec/;
}

98 :login:Penguin:2006/02/24(金) 16:50:56 ID:cbN1qQJn.net

@@@

65 :login:Penguin:04/04/07 10:33 ID:okZh1+9q.net

漏れは、改行はtrつかって変換してる’¥012′

26 :login:Penguin:03/11/04 21:36 ID:WMTM9YVK.net

>>25
ちなみに。。。
同じような書き方ならPerlのほうが、微妙に早いかも。
#!/usr/bin/perl
open HDL, “find . -type f|”;
while(<HDL>)
{
s/.*¥///;
print;
}

114 :login:Penguin:2008/07/17(木) 19:01:07 ID:fSKuDDXe.net

head.logというファイルの先頭に「HOGEHOGE」という文字列を挿入しようとしています。

head.logの中身は
——-
test
test
——-
という二段の文字列です。
最初に直接sedを用いて

sed -e ‘1 s/^/HOGEHOGE¥n/’ head.log

というコマンドで
——-
HOGEHOGE
test
test
——-
と表示することには成功しました。

169 :login:Penguin:2012/06/30(土) 11:18:32.68 ID:kfAX5M5C.net

>>168
遅れてる〜

121 :login:Penguin:2008/08/03(日) 00:52:44 ID:VOatfWTi.net

>>119

GNU sed のソースを見た限りでは、一行ごとに読み込んでいるのだけど
改行がついていたかどうかのフラグを持ってるね。
んで、入力に改行がなかった場合には出力にも付加しない。

POSIX的にはどうか知らないけど 119にある理解でいいんじゃないか?

174 :login:Penguin:2012/08/30(木) 21:13:34.46 ID:kFZpMX1L.net

スレ違いだとわかってるなら適切なスレで聞いてください。

32 :login:Penguin:03/11/10 21:22 ID:HfGu945d.net

>>sed@修行中
sedの置換命令のデリミタには任意の文字が使えるぞ。
置換文字列に’/’が含まれるなら。’/’を’¥’でエスケープするよりも
文字列に含まれない文字をデミリタにすると読みやすいと思う。


s/¥/[[:space:]]/¥/¥
/g

s@/[[:space:]]@/¥
@g

s/¥/$//g

s%/$%%g

100 :login:Penguin:2006/04/12(水) 02:40:10 ID:TK6X7NqV.net

深夜挙げ

78 :login:Penguin:05/03/05 11:26:28 ID:Xag2FfiC.net

パイプに渡してrmコマンドで削除はできる

118 :login:Penguin:2008/07/17(木) 21:07:52 ID:fSKuDDXe.net

うわああああ!!
恥ずかしいです(><)

ありがとうございました(;_;)

24 :sed@修行中:03/11/04 15:19 ID:nEpLG0yd.net

sed 4.0.1 の info を翻訳したもの。
http://www.geocities.jp/fut_nis/html/sed-ja/index.html#Top

30 :login:Penguin:03/11/10 11:04 ID:ZJpiLeJv.net

>>27
>この状態だとこれ以上の編集ができないんだよね。。。
>一旦ファイルに落してからつづきをするしかないのかな?
意味がよくわからんのだが、
sed -n -f yourei.sed eijirou.txt | sed -e ‘….’
じゃダメなのか?
あと、1行目を
#!/usr/bin/sed -n -f
として chmod +x しておくといいかも。

140 :login:Penguin:2008/12/03(水) 02:53:15 ID:1xcvKxcT.net

>>139

 sed -ne ‘/1/,/3/{/3/q; p’

41 :login:Penguin:03/11/11 11:06 ID:viYZ+vae.net

>>40
> あれが書かれた当時、.doc はテキストファイルに使われる拡張子でした。
なのに Content-Type: application/msword なのね。

89 :login:Penguin:2005/11/28(月) 23:09:25 ID:EcBnAVh1.net

>>88
捨て

111 :login:Penguin:2008/04/17(木) 05:57:23 ID:OFfDkpoC.net

夢翔塾代表 逮捕後アリバイ工作 証人威迫容疑で福岡県警再逮捕 拘置中、男に依頼

特定非営利活動法人(NPO法人)「ハートランド夢翔塾(むしょうじゅく)」(福岡県大牟田市)代表の川野弘樹容疑者(36)=児童福祉法違反の罪で起訴=が、
塾生の少女=当時(16)=にわいせつ行為をしたとされる事件で、同県警は5日、拘置中に知り合った男と事件当日のアリバイ工作をしたとして、
証人威迫の疑いで川野容疑者を再逮捕し、大牟田市草木、飲食店従業員李永浩容疑者(32)を逮捕した。
調べでは、川野容疑者は大牟田署の留置場に拘置された際、別の事件で拘置されて同房だった李容疑者と共謀。
略式起訴で2月1日に保釈された李容疑者は同日夜、大牟田市内の川野容疑者の知人女性を訪ね、
「(わいせつ事件の)犯行時、川野容疑者と一緒にいたと証言してくれ」と、うそのアリバイ証言をするように強要した疑い。
両容疑者に面識はなく、留置場内で謀議していたという。川野容疑者は黙秘し、李容疑者は容疑を認めているという。
県警は5日、川野容疑者が昨年10月8日にも同市内の路上に止めた乗用車内で同じ少女にわいせつ行為をしたとして、
児童福祉法違反(淫行(いんこう))容疑でも再逮捕した。

ttp://www.nishinippon.co.jp/nnp/national/20080306/20080306_001.shtml

浜松・連続女性暴行:懲役20年を求刑 /静岡

浜松市の連続女性暴行事件で強姦(ごうかん)致傷などの罪に問われた同市中区北寺島町、
韓国籍の会社員、李正遠(イチョンウォン)被告(34)の論告求刑公判が4日、地裁浜松支部 (北村和裁判長)であった。
検察側は懲役20年を求刑した。
毎日新聞
ttp://mainichi.jp/area/shizuoka/news/20080305ddlk22040174000c.html

強制わいせつ容疑で逮捕 /福岡

26日、八幡東区石坪町、土木作業員、崔吉竜容疑者(32)を。
今月12日午後6時50分ごろ、門司区内の会社事務所に「トイレを貸してほしい」と
言って立ち入り、事務員の女性(32)に抱きつくなどわいせつな行為をした疑い。
前日にも事務所を訪れており、「強制ではない」などと犯意を否認しているという。

ttp://mainichi.jp/area/fukuoka/news/20080227ddlk40040511000c.html

73 :login:Penguin:05/02/20 11:53:39 ID:x3mWXcsm.net

>>70
sed -e “s/^/¥”/” -e “s/$/¥”/”
sed -e “s/^¥(.*¥)$/¥”¥1¥”/”

93 :login:Penguin:2005/11/30(水) 22:43:30 ID:+mlzjm+U.net

>できるよ。

/*

*/
のように複数行に分かれている場合にもできますか?

77 :login:Penguin:05/02/26 00:08:54 ID:Oyc5PjG3.net

「重複名ファイル」が何のことか分からんが、
sedでファイルを削除することはできません

107 :login:Penguin:2007/11/24(土) 09:54:12 ID:KS9aoT96.net

むしろ ( だけでいいはず

参考になったらSNSでシェアお願いします!

レスを投稿する(名前省略可)

この記事を読んだ方へのおすすめ

  • Mozilla Firefox質問スレッド Part179

    元スレ 1 :名無しさん@お腹いっぱい。:2018/05/31(木) 20:16:12.35 ID:epz7KSMR0.net Mozilla Firefoxの質問・相談スレッドです。 自分で調べてどうしても分からないこ…

  • 2chAPIProxy 7

    元スレ 1 :名無しさん@お腹いっぱい。:2020/04/23(Thu) 21:19:08 ID:Tozh0lZ40.net 2chAPIProxyはdat取得をAPI経由で行うローカルプロクシです。 【作者】 ◆k9Z…

  • なぜLinuxのシェアを上げる必要があるのか

    元スレ 1 :login:Penguin:2016/02/05(金) 22:12:59.43 ID:X0Gg8m46.net マルウェア増えるし変なユーザーが入ってるし どんなメリットがあるの? 39 :login:Pe…

  • KDevelop,Anjuta+gladeで何か作るスレ

    元スレ 1 :login:Penguin:2006/04/25(火) 11:58:08 ID:XbJ2RFrR.net 暇なら何か作ればいいじゃん プログラム板ってLinux門前払いじゃん ここで作ればいいじゃん Gtk…

  • リチャード・ストールマンMIT職とFSF代表を辞任

    元スレ 1 :login:Penguin:2019/09/18(水) 03:12:31.05 ID:0q8j0pAa.net フリーソフトウェア運動開祖ストールマン、MIT職とFSF代表を辞任。エプスタイン献金関連で失言…

  • Debian GNU/Linux スレッド Ver.97

    元スレ 1 :login:Penguin:2021/06/18(金) 18:09:16.38 ID:H7TnviZA.net 公式 https://www.debian.org/index.ja.html 過去ログは各自…

  • Mozilla Firefox 拡張機能スレッド Part117

    元スレ 1 :名無しさん@お腹いっぱい。 :2019/05/08(水) 15:49:24.61 ID:EKEvkGIy0.net !extend:checked:vvvvv:1000:512 次スレを立てる方は↑を二行重…

  • Mozilla Firefox Part366

    元スレ 1 :名無しさん@お腹いっぱい。 (ワッチョイ 53b1-QvO8):2020/08/19(水) 13:45:17 ID:Xe0FNLf00.net !extend:checked:vvvvv:: スレッドを立て…

  • 【勝訴】一太郎2005【確定】

    元スレ 1 :名無しさん@お腹いっぱい。:2005/10/18(火) 19:21:50 ID:R+iXIVU60.net 日本語ワードプロセッサ 一太郎2005 オンラインカタログ ttp://www.ichitaro.…

  • アーケードエミュレーターMAMEスレ 0.147

    元スレ 1 :名無しさん@お腹いっぱい。:2019/12/09(月) 09:45:24.59 ID:Hn0bybvV0.net アーケードエミュレーターMAMEを語るスレです。 雑談も質問も統合でお願いします。ROM関連…

  • あえてコマンドライン禁止のLinux

    元スレ 1 :login:Penguin:2007/08/26(日) 14:33:00 ID:oPKLfg3G.net コマンドライン無しでどこまでできるか、おまいらの腕を自慢してくれ!! 51 :login:Pengu…

  • JaneView Part90

    元スレ 1 :名無しさん@お腹いっぱい。:2014/09/28(日) 11:52:23.05 ID:VKmtBagT0.net □はじめに   画像ビューア、多くの機能が追加されたOpenJane派生の2ちゃんねるブラウ…

最近のコメント

匿名 : 【いちゃ部屋】株式会社SHIFT【5ch出張所】
 新入社員はわかいそう、 在宅勤務でe-ラニングうけとけ、 ... (6/18)
匿名 : 【残業代】福井 株式会社アスタ【未払い】
 プライド高いところあるけど清輝あるなら大丈夫や (5/28)
匿名 : 【残業代】福井 株式会社アスタ【未払い】
 プライド高いところあるけど清輝あるなら大丈夫か (5/07)
ページTOPへ↑