- - PR -
ShellScriptにおけるテキスト処理
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-01-26 11:54
お伺いしたい事があります。
以下のようなファイルがあります。 ---------- START 1 2 3 END=3 ---------- ファイルの先頭行には、必ず、START 終端行には必ずEND=レコード行数が格納されています。 これをShellScriptで先頭行と終端行を削除して 別のファイルを作りたいのですがどうしたらよいでしょうか? tail +2 /tmp/aaa > /tmp/aaa2 head -3 /tmp/aaa2 とやればよいのでしょうが、head -3 の"-3"は動的なんで それをどうにかしたいのですが、煮詰まってしまいました。。。 よろしくお願いします。 |
|
投稿日時: 2006-01-26 12:25
grep -e "^[^START|^END=.*]" aaa
こんなのとか? |
|
投稿日時: 2006-01-26 12:35
sed -e '1d; $d' aaa
これでもいいと思います. |
|
投稿日時: 2006-01-26 13:36
mioさん、失礼ですが、それではまずいと思います.
grep -e '^[^START]' ↑の書き方では、行頭の1文字目が'S'、'T'、'A'、'R'のいずれでもない行に対するマッチになってしまいます.たとえばRedとだけ書いてある行も弾かれてしまいます. その考え方で書くならば、下のようになると思います. egrep -v '^(START|END)' aaa |
|
投稿日時: 2006-01-26 14:54
zirtunさん、mioさん
ご回答、ありがとうございました。 データの中身にSTART等がはいることもあるそうなんで sedでやりたいと思います。 ありがとうございました。 助かりました。 |
|
投稿日時: 2006-01-27 11:38
>mioさん、失礼ですが、それではまずいと思います.
失礼しました。実験もしないで書き込むとこういう恥をさらす(_ _; |
1