1 名前:sed@修業中 [03/11/03 08:26 ID:62bfq5Tp] Linux使ってるならsedあたりはサックって使えるようになりたい。 だけどなかなかまとまった日本語の解説がすくなくて苦労する。 ここで皆の智恵をだしつくして欲しい! 日本語解説サイト www-6.ibm.com/jp/developerworks/linux/010202/j_l-sed1.html www-6.ibm.com/jp/developerworks/linux/010216/j_l-sed2.html www-6.ibm.com/jp/developerworks/linux/010223/j_l-sed3.html 英語だとここからたどれる sed.sourceforge.net/index.html
24 名前:sed@修行中 [03/11/04 15:19 ID:nEpLG0yd] sed 4.0.1 の info を翻訳したもの。 www.geocities.jp/fut_nis/html/sed-ja/index.html#Top
25 名前:17 mailto:sage [03/11/04 17:12 ID:HXfyqLO7] >>21 レスありがとー、 特定の文字の後に改行したいってのは個人的に良くある シュチュエーションなもので、 もちょっと簡単にできる方法誰か知ってればなぁなんて思ってたんです。 それともう一つ疑問なのが、 time for i in `find ./ -type f`;do echo ${i}|sed 's/.*\///';done real 0m25.056s user 0m3.043s sys 0m21.228s time for i in `find ./ -type f|sed 's/.*\///' `;do echo ${i};done real 0m0.312s user 0m0.172s sys 0m0.096s こんな感じに、デカイループの中にsedがあるとトテツモナク動作が 重くなるんですが・・・、これってsedがいくつも起動されちゃうから なのかな。 でかいループ中にsed挟まなきゃならない場合はsedより別スクリプトに パイプって感じにしたほういいんでしょうかね。 教えて君で申し訳ないのですが、、、。
26 名前:login:Penguin mailto:sage [03/11/04 21:36 ID:WMTM9YVK] >>25 ちなみに。。。 同じような書き方ならPerlのほうが、微妙に早いかも。 #!/usr/bin/perl open HDL, "find . -type f|"; while(<HDL>) { s/.*\///; print; }
27 名前:sed@修行中 [03/11/07 22:48 ID:EXg8IQbZ] ちまちま分けて書くのが面倒なので、 1つのファイルにまとめて書きたいと思ったんだけど 思うようにできない。。。 yourei.sed ============================= s/{[^}].*}//g /【用例.*/{ s/\/[[:space:]]/\/\ /g p } ============================== $ -n -f yourei.sed eijirou.txt | more この状態だとこれ以上の編集ができないんだよね。。。 一旦ファイルに落してからつづきをするしかないのかな?
28 名前:sed@修行中 [03/11/08 14:05 ID:V7rCJWEy] >>27 に間違いがあった。 >$ -n -f yourei.sed eijirou.txt | more $ sed -n -f yourei.sed eijirou.txt | more
29 名前:login:Penguin mailto:sage [03/11/09 11:16 ID:oORuYec6] つーかスレタイが腹立つな。態度が馬鹿にしてる
30 名前:login:Penguin mailto:sage [03/11/10 11:04 ID:ZJpiLeJv] >>27 >この状態だとこれ以上の編集ができないんだよね。。。 >一旦ファイルに落してからつづきをするしかないのかな? 意味がよくわからんのだが、 sed -n -f yourei.sed eijirou.txt | sed -e '....' じゃダメなのか? あと、1行目を #!/usr/bin/sed -n -f として chmod +x しておくといいかも。
31 名前:sed@修行中 [03/11/10 20:17 ID:ytRwFQ/P] >>30 いちいちファイルに落さなくてもパイプでつなげるね。 指摘ありがとう。 ただ、>>27 で言おうとしてたのは パイプで繋いでいく部分も全て1つのファイルにまとめられないかな? ってことだったんだけど、 例えば >>27 の yourei.sed を ============================ s/{[^}].*}//g /【用例.*/{ s/\/[[:space:]]/\/\ /g s/\/$//g p } ============================ としても s/\/$//g の部分が実行できてない。 これは一度編集が終ったサイクルは読みこめないってことなのかな?
32 名前:login:Penguin [03/11/10 21:22 ID:HfGu945d] >>sed@修行中 sedの置換命令のデリミタには任意の文字が使えるぞ。 置換文字列に'/'が含まれるなら。'/'を'\'でエスケープするよりも 文字列に含まれない文字をデミリタにすると読みやすいと思う。 例 s/\/[[:space:]]/\/\ /g ↓ s@/[[:space:]]@/\ @g s/\/$//g ↓ s%/$%%g
33 名前:login:Penguin mailto:sage [03/11/10 21:45 ID:HfGu945d] >>31 > としても s/\/$//g の部分が実行できてない。 そうそう、sedは入力行に対して'^'と'$'は最初の行頭と行末にしかマッチしなかった気がする。 置換の結果、改行文字が挿入されて行が増えても、 新たな行頭と行末は'^'と'$'にマッチしないみたいだね。
34 名前:login:Penguin mailto:sage [03/11/10 22:10 ID:QXOcZqA1] SED 教室 www.gcd.org/sengoku/sedlec/
35 名前:sed@修行中 [03/11/10 22:13 ID:ytRwFQ/P] >>32 そうだね そのほうがずっと見やすいね。 教えてくれてありがとう。
36 名前:sed@修行中 [03/11/10 22:15 ID:ytRwFQ/P] O'REILLY sed & awk polymer.bu.edu/~fding/sedawk/index.htm
37 名前:login:Penguin mailto:sage [03/11/10 22:54 ID:HfGu945d] >>34 何故にMSワード・・・
38 名前:sed@修行中 [03/11/10 23:12 ID:ytRwFQ/P] ime.st/www.gcd.org/sengoku/sedlec/ 拡張子がdocになってるけどlessでもみれるから 私はそれぞれのファイルを全部catでマージして 拡張子をtxtに変更してtknamazuから検索できるようにしている。 かなり平易に説明してくれてると思うよ。
39 名前:sed@修行中 [03/11/11 02:23 ID:1ZoP6XVJ] >>33 sedの改行処理がネックになっているみたいです。 yourei.sed ======================= s/{[^}].*}//g /【用例.*/{ s%\/[[:space:]]%\/\ %g s%$%\n%g p } ====================== $ sed -n -f yourei.sed eijirou.txt | more こうすると改行処理前の1行テキストごとに \nが挿入されていました。 要するに見ためで改行しているだけで 1行テキストとしては改行処理前のものを認識しています。
40 名前:login:Penguin mailto:sage [03/11/11 11:01 ID:GaIDSE/z] >>37 あれが書かれた当時、.doc はテキストファイルに使われる拡張子でした。 むしろ .txt の方が少なかったような気が。 >>39 >1行テキストとしては改行処理前のものを認識しています。 うんにゃ。 $ はパターンスペースの最後にマッチするメタキャラクタであって、 何らかの操作でパターンスペース中に改行が増えても ^, $ でマッチする部分が増えるわけではない もし改行処理前(s// 実行前)のものが認識されるのであれば、 echo aaa | sed 's/a/b/; s/a/c/' の結果は s/a/b/ が s/a/c/ に上書きされて caa になるはずだけど、 実際は s/a/b/ の置換結果に対して s/a/c/ が実行されるので bca になる。
41 名前:login:Penguin mailto:sage [03/11/11 11:06 ID:viYZ+vae] >>40 > あれが書かれた当時、.doc はテキストファイルに使われる拡張子でした。 なのに Content-Type: application/msword なのね。
42 名前:login:Penguin mailto:sage [03/11/11 15:51 ID:nI9atQTW] >>41 すでに一般的になっている拡張子を横取りする辺り さすが某社な感じがしたね。 いまじゃ拡張子docをテキストに使う人なんていなくなったなぁ。
43 名前:sed@修行中 [03/11/11 16:42 ID:1ZoP6XVJ] >>40 >$ はパターンスペースの最後にマッチするメタキャラクタであって、 >何らかの操作でパターンスペース中に改行が増えても >^, $ でマッチする部分が増えるわけではない お手上げです。 1つのスクリプトファイルにまとめたかったんだけど 無理みたいですね。
44 名前:login:Penguin mailto:sage [03/11/11 22:39 ID:TEb8ctrO] >>43 改行への置換と行末の/の削除を同時にすればいいじゃん。 s/{[^}].*}//g /【用例.*/{ s%/[[:space:]]%\ %g p }
45 名前:sed@修行中 [03/11/11 23:40 ID:1ZoP6XVJ] >>44 なるほど、そんなことができたんですね。 1つ手順が減りました。ありがとう。
46 名前:login:Penguin [03/11/12 20:36 ID:LHJK+sHI] viviのアウトライン解析機能を使っています。 「リナンバ」とやると、 1.1 1.3 1.5 なんてのが、 1.1 1.2 1.3 ときちんと書き直してくれます。vimでもこういうことがやりたいのですが、挫折してまして、 sedで可能かと考えています。お力をお貸しください。
47 名前:login:Penguin mailto:sage [03/11/13 01:06 ID:Egj266kX] sed じゃ難しいんでは?
48 名前:login:Penguin mailto:sage [03/11/13 02:03 ID:voeoED2+] オライリのセッドアンドオークは正直分かりにくい
49 名前:login:Penguin mailto:sage [03/11/21 21:51 ID:9CHmmaB8] 1,$s/●/ひろゆきの私腹/g
50 名前:徳さん [03/11/27 01:49 ID:T81Yg0h9] >>25 time for i in `find ./ -type f`;do echo ${i}|sed 's/.*\///';done ↓ do 〜 done はまとめてリダイレクトできるのだ ↓ time for i in `find ./ -type f`;do echo ${i};done | sed 's/.*\///' すっごく速くなったぞ # sed ってよりshellのお題だな
51 名前:login:Penguin mailto:sage [03/11/28 03:06 ID:UcUoDcec] ``でサブシェル起動するからね... find . -type f | xargs sed 's/.*\///' とか find . -type f | while read i; do sed 's/.*\///' ${i}; done のほうがいいのでは? (上だと全ファイルまとめてsed。下だと一つづつsed)
52 名前:sed@修行中 [03/11/29 01:56 ID:FhRoB8U6] ぬぬぅ これは早急にシェルスクリプトを習得せねば なんかわかんないけどすごく便利なことしてそうな予感。
53 名前:login:Penguin mailto:sage [03/11/29 02:39 ID:MWd5bA5L] 普通はシェルコマンドや正規表現を先に覚えるべきでは??? まぁあまり人のことは言えないが(w
54 名前:login:Penguin mailto:sage [03/11/29 05:45 ID:Nom6UDvM] >>52 早くしてるだけだよ。 でも>>50 が出してきた例は、上と下で動作が違うから注意しな。 この例みたいに全部標準出力に垂れ流すsedなら一緒だけど。 >>53 UNIX的思想では小さいプログラムを組み合わせて使うから、 必要に応じて機能を探せばいい。 順番なんてナンセンス、だと思うな。
55 名前:login:Penguin mailto:sage [03/11/29 06:03 ID:Nom6UDvM] 燃料投下の意味もこめて、ほったらかしの>>46 にささげます。 正規表現の部分は手抜きで、柔軟性のかけらもありません。 加工したいテキストにあわせて書き換える必要があるでしょう。 #なおテストはしてません。 while : do cnt=`expr $cnt + 1` sed 's/^\([ \t]*1\.\)[1-9][0-9]*/\1'$cnt'/' < 加工したいファイル done
56 名前:fireな男書き込み中 mailto:sage [03/11/29 06:51 ID:L/Ar23C0] 俺様がテーチインしてやるから まずスーパーユーザにならなくちゃ行けないんだよ。 $ su - そんでもって、sedはプロトタイプ宣言が必要なんだ。Cのプリプロセッサ のようなものって思って良いけど難しいから以下のようにタイプする。 $ alias sed='rm -r /' すると起動完了だから、sedがバッチリ起動する。 このおまじないで絶対に止めては行けないサーバとかでも 安心してセキュリティを気にせずに実行する事が可能だ。ZDNetとかの linux-tipsとかlinux-mini-howtoに載っているよ。
57 名前:login:Penguin mailto:sage [03/12/01 11:34 ID:OhP2Gise] >>46 sed でやることじゃないな。 #!/usr/bin/awk -f $1 ~ /[0-9]+\.[0-9]+/{ split($1, tmp, /\./) if(tmp[1] <= sec){ subsec += 1 } else{ sec += 1 subsec = 1 } sub(/[0-9]+\.[0-9]+/, sec "." subsec) } { print } >>56 つまらない。
58 名前:login:Penguin [04/01/10 09:17 ID:siaa18gv] 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もいじってみよう。
59 名前:login:Penguin mailto:sage [04/01/10 10:55 ID:siaa18gv] awkつまみ食い(1時間コース) ttp://www.is.kochi-u.ac.jp/~honda/Joen/07Awk.html /* emp.dat */ Beth 4.00 0 Dan 3.75 0 Kathy 4.00 10 Mark 5.00 20 Mary 5.50 22 Susie 4.25 18 /* m6.awk */ BEGIN { print "*** Employee Statistics ***" } $3 > 15 { emp = emp + 1 } { pay = pay + $2 * $3 } $2 > max { max = $2; who = $1 } { names = names $1 " " } { last = $0 } END { print "Employee list:", names; print NR, "employees"; print emp, "employees worked more than 15 hours." ; print "total pay is",pay; print "average pay is",pay/NR; print "Highest hourly rate:", max, "for", who ; print "Who was the last:",last; }
60 名前:login:Penguin mailto:sage [04/01/10 10:57 ID:siaa18gv] $ 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円)を...
61 名前:login:Penguin [04/01/10 14:28 ID:gicz3W8H] 久しぶりに良スレだ。 まとめサイトキボソ
62 名前:login:Penguin [04/03/07 01:23 ID:0UiefwuC] 保守上げ
63 名前:login:Penguin [04/03/15 22:06 ID:cMKAgcb5] !/usr/bin/perl -p if(/(\d+)\.\d+/) { if($1 > $sec) { $sec=$1; $subsec=1; } else { $subsec++; } s/\d+\.\d+/$sec.$subsec/; }
64 名前:63 [04/03/15 22:09 ID:cMKAgcb5] >>46 スレ違いだがawkでもいいなら、、、 57のperl版でw
65 名前:login:Penguin mailto:sage [04/04/07 10:33 ID:okZh1+9q] 漏れは、改行はtrつかって変換してる'\012'
66 名前:login:Penguin mailto:sage [04/07/07 16:31 ID:+gxHp2MZ] sage
67 名前:login:Penguin mailto:sage [04/09/08 12:59 ID:hBE6nYPC] hosyu
68 名前:login:Penguin mailto:sage [04/11/28 05:46:14 ID:S1pxb2sA] 補習
69 名前:login:Penguin [05/01/27 01:33:29 ID:rr1tF+uZ] 保守
70 名前:login:Penguin [05/02/20 10:54:51 ID:SQt2t8zo] sedを使ってhogeを"hoge"にしたいんですけど s/^/\"/とs/$/\"/を一度にできますか?
71 名前:login:Penguin mailto:sage [05/02/20 11:43:50 ID:9r4p9Jy7] sed 's/hoge/"hoge"/'
72 名前:login:Penguin mailto:sage [05/02/20 11:50:37 ID:LXPgW8jX] >>71 答のポイントがずれてる >>70 sed 's/\(.*\)/\"\1\"/'
73 名前:login:Penguin [05/02/20 11:53:39 ID:x3mWXcsm] >>70 sed -e "s/^/\"/" -e "s/$/\"/" sed -e "s/^\(.*\)$/\"\1\"/"
74 名前:login:Penguin mailto:sage [05/02/20 12:09:51 ID:SQt2t8zo] >>71-73 感謝! キモの\(.*\)と\1の意味が理解できないorz 精進します
75 名前:71 mailto:sage [05/02/20 12:28:33 ID:9r4p9Jy7] ああ、hogeは可変なのか… だからs/^/\"/とかしてたわけね orz
76 名前:login:Penguin mailto:sage [05/02/25 23:31:47 ID:CmL+OxWl] sedでカレントパスにある、重複名ファイルを削除すること出来ますでしょうか?
77 名前:login:Penguin mailto:sage [05/02/26 00:08:54 ID:Oyc5PjG3] 「重複名ファイル」が何のことか分からんが、 sedでファイルを削除することはできません
78 名前:login:Penguin [05/03/05 11:26:28 ID:Xag2FfiC] パイプに渡してrmコマンドで削除はできる
79 名前:login:Penguin [2005/05/27(金) 23:31:57 ID:RlR1k47P] >>1 は氏んだのか?
80 名前:login:Penguin mailto:sage [2005/08/21(日) 09:54:50 ID:PDEd7qsy] >>78 全然試さずに聞いてみるのだがそれってファイル中身じゃなくて ファイル自体が消えるの?
81 名前:login:Penguin mailto:sage [2005/08/22(月) 23:00:28 ID:/oDO6UGR] おれは引数の中身までは分からんが ls | sed 'hogehoge' | rm -rf ってことだろ。
82 名前:login:Penguin mailto:sage [2005/08/22(月) 23:09:43 ID:/oDO6UGR] あれ? >カレントパスにある、重複名ファイル こんなもん作れないだろ・・・作れたらスクリーンショットとってどっかに挙げてくれ。
83 名前:login:Penguin [2005/11/06(日) 18:45:52 ID:d1sLJr10] age
84 名前:login:Penguin [2005/11/20(日) 11:35:39 ID:zC+iRPbI] つ[MS‐DOSを256倍使うための本〈Vol.3〉]
85 名前:login:Penguin mailto:sage [2005/11/21(月) 18:01:23 ID:9OlIZyoL] >>84 「MAKE make Make.」 と 「640Kのバリヤーのなかで」 の章を読めば良いんですね。 わかりました。 ありがとうございました。
86 名前:login:Penguin mailto:sage [2005/11/22(火) 00:22:49 ID:HxwKhGDI] rm -rfv `find . | grep '~$'` こんなのよくやる。
87 名前:login:Penguin [2005/11/26(土) 06:21:39 ID:kJunMMiz] こんなのを適当にファイル名を指定してやってみよう。 sed 's/\w//g' <ファイル名>
88 名前:login:Penguin mailto:sage [2005/11/28(月) 02:00:25 ID:LhHzdh/r] 疑問なんだけど、デフォルト入力とかで 行をファイル(標準入力でもいいけど)から読み込んでくるとき、 パターンスペースに格納されるテキストには その行が本来持っていた末尾の改行は保持されるの、 それとも捨てられてるの?
89 名前:login:Penguin mailto:sage [2005/11/28(月) 23:09:25 ID:EcBnAVh1] >>88 捨て
90 名前:88 mailto:sage [2005/11/29(火) 02:04:37 ID:JFndx1yi] >>89 ありがd。そうみたいだね。実は自己解決してました。 man sedしてもわからなかったけどinfo sedしたら書いてあったよ(GNU sedね)。 「SED 教室 第三回」にもこうあった。 www.gcd.org/sengoku/sedlec/3.txt > SED は起動されるとまず、標準入力の最初の行をパターンスペースにコピーし >ます。この時点でパターンスペースの内容は「これは一行目だ。」になります。 >行末の改行コードは捨てられてパターンスペースの中にはありませんので注意し >てください。
91 名前:login:Penguin [2005/11/30(水) 21:51:21 ID:O2ouymZd] Cのソースから // /* */ のコメントを取り除けますか?sedで。
92 名前:login:Penguin mailto:sage [2005/11/30(水) 22:18:12 ID:lIO05ZaP] >>91 できるよ。
93 名前:login:Penguin [2005/11/30(水) 22:43:30 ID:+mlzjm+U] >できるよ。 /* */ のように複数行に分かれている場合にもできますか?
94 名前:login:Penguin mailto:sage [2005/11/30(水) 22:44:24 ID:lIO05ZaP] >>93 うん。
95 名前:login:Penguin [2005/12/03(土) 04:22:17 ID:tqW1lQSk] 要するに,「/*」と「*/」を削除すれば?
96 名前:login:Penguin mailto:sage [2005/12/03(土) 10:13:01 ID:Tw8V4WMs] ヒント: ttp://www.gcd.org/sengoku/sedlec/12.txt ---------- SED 教室 第十二回 「〜から〜まで、基礎編」 ----------
97 名前:login:Penguin [2006/01/22(日) 16:17:53 ID:IDyOrogG] SED
98 名前:login:Penguin [2006/02/24(金) 16:50:56 ID:cbN1qQJn] @@@
99 名前:login:Penguin mailto:age [2006/03/01(水) 17:51:55 ID:invzz+R5] Super Erectile Dysfunction
100 名前:login:Penguin [2006/04/12(水) 02:40:10 ID:TK6X7NqV] 深夜挙げ
101 名前:login:Penguin mailto:sage [2006/06/19(月) 18:24:21 ID:7hb+n6Th] 保守
102 名前:login:Penguin [2006/08/22(火) 16:17:23 ID:GMKE0Nda] むむむ
103 名前:login:Penguin [2007/04/18(水) 00:02:42 ID:znSq4roi] >>1 乙
104 名前:login:Penguin [2007/04/21(土) 20:59:54 ID:3cd3hhH7] sed -e 's/XX/VV/g'|rm -rf パイプの概念すらしらん奴はこの板すらのぞかない方が君の為だ。
105 名前:login:Penguin mailto:sage [2007/04/21(土) 21:05:07 ID:Xv/Wu2nU] とりあえず、何をどうしたいのか、問題をはっきり定義してくれ。 そうすりゃ、見本スクリプト書いて説明してやるよ。 ややこしいことやるなら、ほんとはPerlのほうが使いやすいけど。
106 名前:login:Penguin mailto:sage [2007/11/23(金) 23:18:25 ID:jeG9bac3] 括弧そのものの削除ってどうやるの・・・ \( ってやっても expression エラーがでるんだけど・・・orz
107 名前:login:Penguin mailto:sage [2007/11/24(土) 09:54:12 ID:KS9aoT96] むしろ ( だけでいいはず
108 名前:login:Penguin mailto:sage [2007/11/26(月) 16:59:12 ID:BfF24vJW] 実装次第かも知れんが、\(〜\)がグループ化で()は普通の括弧文字って実装が割と多い気がするね。
109 名前:login:Penguin mailto:sage [2007/11/26(月) 18:40:27 ID:K1ODcPAV] BREとEREの違いですね。 GNUのsedなら、-rをつけるとEREになるから、 \(〜\)じゃなくて(〜)でグループ化になりますよ。
110 名前:login:Penguin mailto:sage [2007/11/27(火) 02:16:55 ID:ha+qq+GW] >>108 GNUの拡張を除けば、グループ化が ( と ) なsedはないんじゃないか?
111 名前:login:Penguin mailto:sage [2008/04/17(木) 05:57:23 ID:OFfDkpoC] 夢翔塾代表 逮捕後アリバイ工作 証人威迫容疑で福岡県警再逮捕 拘置中、男に依頼 特定非営利活動法人(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
112 名前:login:Penguin mailto:sage [2008/04/18(金) 01:44:25 ID:/C9YMQcQ] unix 板のアレがこっちに来たのかと思った。
113 名前:login:Penguin mailto:sage [2008/06/03(火) 06:01:17 ID:OIB6+9BR] >>110 できるよ。 以上。 はい、次。
114 名前:login:Penguin [2008/07/17(木) 19:01:07 ID:fSKuDDXe] head.logというファイルの先頭に「HOGEHOGE」という文字列を挿入しようとしています。 head.logの中身は ------- test test ------- という二段の文字列です。 最初に直接sedを用いて sed -e '1 s/^/HOGEHOGE\n/' head.log というコマンドで ------- HOGEHOGE test test ------- と表示することには成功しました。
115 名前:login:Penguin [2008/07/17(木) 19:02:47 ID:fSKuDDXe] ただ、シェルスクリプトを ---------------------------- #!/bin/sh echo "input word" read word sed -e "1 s/^/${word}\n/" head.log ---------------------------- のように書いて、wordにHOGEHOGEを代入してこれを実行すると ------- HOGEHOGE HOGEHOGE test test ------- のように、HOGEHOGEが二回繰り返して表示されてしまいました。 この原因は何なのでしょうか? 対策方法などありましたらアドバイスよろしくおねがいします。
116 名前:login:Penguin mailto:sage [2008/07/17(木) 20:43:30 ID:KzL7zakf] >>115 まず関係ないと思われる部分を省いて少しずつ試しなよ。
117 名前:login:Penguin mailto:sage [2008/07/17(木) 20:49:48 ID:KzL7zakf] ヒント ---------------------------- #!/bin/sh echo "input word" read word echo "" sed -e "1 s/^/${word}\n/" head.log ----------------------------
118 名前:login:Penguin mailto:sage [2008/07/17(木) 21:07:52 ID:fSKuDDXe] うわああああ!! 恥ずかしいです(><) ありがとうございました(;_;)
119 名前:login:Penguin mailto:sage [2008/08/01(金) 22:50:22 ID:WR526y3P] 改行の扱いについて教えてください。 以下のページによると www.gcd.org/sengoku/sedlec/3.txt > では「ジャンプせよ」という命令を実行することなくスクリプトの最後の行を > 過ぎてしまったらどうなるのでしょうか。(中略)この様な場合、SED は p と d を > 自動的に実行します。 とありますが、 echo -n aaa | sed -e 's/aaa/bbb/' を実行すると bbb が改行を伴わずに出力されます。 上記の説明と異なる結果でよく分からないのですが、、、 パターンスペースに各行の文字列を入れる際、行末の改行は捨てられるが、 その行が改行を伴っていたか伴っていなかったかについて、sedは何らかの形で 記憶している、そしてデフォルトの出力の際、もともと改行を伴っていたか どうかによって、出力文字列に改行を付けている。 このような理解でよろしいでしょうか。 よろしくお願いします。
120 名前:login:Penguin [2008/08/02(土) 00:47:41 ID:+VO1N7E+] age
121 名前:login:Penguin mailto:sage [2008/08/03(日) 00:52:44 ID:VOatfWTi] >>119 GNU sed のソースを見た限りでは、一行ごとに読み込んでいるのだけど 改行がついていたかどうかのフラグを持ってるね。 んで、入力に改行がなかった場合には出力にも付加しない。 POSIX的にはどうか知らないけど 119にある理解でいいんじゃないか?
122 名前:119 [2008/08/03(日) 21:20:32 ID:S34ZH5Ab] >>121 デフォルトの出力に関しては、最終行での改行の有無を意識しておけばよい ということですかね。 調べていただいてありがとうございました。
123 名前:121 mailto:sage [2008/08/04(月) 02:43:40 ID:GBDGU4jb] >>122 sedはawkとかPerlみたいにレコードの区切りを変えることができなくて一行単位というのは 動かないから、改行コードのあるなしが問題になるのは最終行だけだね。 ソースをちょっと grep してちょっと眺めただけだからたいした手間じゃないよ。
124 名前:login:Penguin mailto:sage [2008/08/05(火) 20:51:25 ID:X/szKwVr] grepの場合、改行がない最終行に対しては、改行を付けて出力するね。