[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/11 15:25 / Filesize : 82 KB / Number-of Response : 350
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

sed



1 名前:名無しさん@お腹いっぱい。 [04/05/28 16:56]
sedスレッド

322 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 23:57:10 ]
そういう機能を追加すると、既存のスクリプトが動作しなくなるから。
ポータビリティを失ってまで実装する必要がない。(それこそ、perlでもawkでも使えばいい)

323 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 09:03:12 ]
なるほど、参考になりました。
もし開発に参加できるなら参加したいと思っていたのですが
そのような理由ならそういったときはperlやawkに頼る事にします。

324 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 09:33:00 ]
>>322
sedに正規表現perl互換モードを搭載すればいいだけなのにね

325 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 18:21:24 ]
GNU sedの-r みたいなので、perlモードがあればいいね。

326 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 19:39:12 ]
>>321
gnu sed 拡張している人たちがいるからそのあたりに乗ってみれば?

327 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 20:18:08 ]
onigsedじゃダメなのか?

つーか、perl -pe でいいじゃん。


328 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 17:21:46 ]
>>321
GNU sed なら
www.gnu.org/software/sed/

329 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/27(金) 16:21:29 ]
>>327
今度はsed互換ではないという

330 名前:名無しさん@お腹いっぱい。 [2009/06/29(月) 20:49:52 ]
質問させてください。
sedでホワイトスペースを解除または増やす方法ってあるのでしょうか?



331 名前:名無しさん@お腹いっぱい。 [2009/06/29(月) 20:52:21 ]
間違い。ホールドスペースです。

332 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/29(月) 21:16:24 ]
以下ホワイトベース禁止

333 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/29(月) 22:40:10 ]
白兵戦になるぞ!

334 名前:名無しさん@お腹いっぱい。 [2009/07/03(金) 03:11:56 ]
sedで、
/pattern/r file
ってするとマッチした行の次にfileの内容が出力されますが、
その行の前に出力する方法はないでしょうか?
ちなみにマッチする行は1個しかありません。

335 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/03(金) 23:31:09 ]
sed -n -e '/pattern/r file' -e p

336 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/03(金) 23:49:16 ]
ごめん、ダメだった。こっちで。
sed -n -e 'x;p;g' -e '/pattern/r file'

1行目の空行は無視して

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/03(金) 23:53:59 ]
1行めの空白はもう1段 | sed 1d で消せるけど……
入力の最後の1行出てなくない?


338 名前:336 mailto:sage [2009/07/04(土) 00:17:53 ]
出てなかった。

sed -n -e 'x;p;g' -e '/pattern/r file' -e '$p'

という感じで最後の行を出力することは出来るけど
patternが最後の行の場合だけ、fileの内容が次行に出ちゃう。
自分はギブアップ

339 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/04(土) 12:34:06 ]
いろいろありがとうございます。
sed 1個では難しいようですね。
patternより前とpattern以後に別けて、
間にfileをcatするしかないのかもしれません。

340 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/04(土) 18:04:47 ]
sed 2個ならなんとか
sed -e '$aEND' | sed -e '
$d
/pattern/{
r file
N
}
${
P
d
}'



341 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/24(木) 17:28:09 ]
>>295 の例に似てますが、
バイナリファイル(1行めの)4バイトめを ASCII 文字 0x02 -> 0x03 に
変更するにはどうすればいいでしょう?

# sed -e '1s/^\(...\)\x02/\1\x03/' in > out

ではだめでした。
試した環境は FreeBSD 7.2 です。

342 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/24(木) 18:02:08 ]
>>341
(dd bs=3 count=1; dd bs=1 count=1 of=/dev/null; printf '¥003'; cat) < in > out

343 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/25(金) 10:26:24 ]
>>341
sed -e "1s/^\(...\)^B/\1$(printf '\03')/"
でできんかね。^BはC-v C-b入力できるはず。

344 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/25(金) 10:46:05 ]
>>343
最初の3バイトに改行文字がない保証がないから一般的にはだめそうだな。
やっぱ行指向のsedでバイナリファイルを操作するのは無理があると思う。

345 名前:341 mailto:sage [2009/09/25(金) 12:31:36 ]
\x02 などは GNU sed の拡張仕様でした。

 # pkg_add -r gsed
 # rehash
 # gsed -e '1s/^\(...\)\x02/\1\x03/' in > out

でできました。

346 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/25(金) 12:37:49 ]
>>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 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/02/20(土) 21:42:41 ]
ひとつ、お聞きいたします。

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

348 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/02/20(土) 23:16:51 ]
>>347
infoに書いてありました。

349 名前:名無しさん@お腹いっぱい。 [2010/07/01(木) 23:39:24 ]
なるほど






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<82KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef