sed

1名無しさん@お腹いっぱい。
垢版 |
NGNG
sedスレッド
2名無しさん@お腹いっぱい。
垢版 |
NGNG
2
NGNG
sed -e '1,2d' -e '4,$d'
NGNG
sed -E -e '=' test | sed -E 'N;s/\n/: /' | sed -E 's/^([0-9]: )/0\1/'

これをパイプを使わずに表現したいんですけど、どうすれば出来ますか?
5名無しさん@お腹いっぱい。
垢版 |
NGNG
sedのスクリプトで?
sed -f hoge test
なかんじ?
64
垢版 |
NGNG
>>5
はい。
#!/usr/bin/sed -f
{
=
N
s/\n/: /
s/^([0-9]: )/0\1/
}

としてもうまく行かなくて悩んでいます。
NGNG
適材適所という言葉があるだろうに…

% awk '{printf "%02d: %s\n", NR, $0}' test
84
垢版 |
NGNG
例えば
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桁の行番号と:を追加するのはなぜうまく出来ないのか
疑問に思ったのです。
NGNG
ム板のawkスレの住人だな?
NGNG
http://pc5.2ch.net/test/read.cgi/linux/1067815570/
NGNG
【貝】第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 です。おすすめ
NGNG
古いけどそこそこ良くまとまったサイトを紹介してみよ。
ttp://www.gcd.org/sengoku/sedlec/
13名無しさん@お腹いっぱい。
垢版 |
NGNG
メールの中身で
添付ファイルのデータが開始するbase64という文字列があった後のデータ全部切り抜いて出力したいんですが
sedで可能でしょうか?
NGNG
>>13
http://www.gcd.org/sengoku/sedlec/12.txt
15名無しさん@お腹いっぱい。
垢版 |
NGNG
From: hoge hage <hoge@moe.com>
↑ これの < > の中に入ってるメールアドレスを、抜き出したいんですが、どうすればいいでしょうか?
NGNG
sed 's/.*From.*<\(.*\)>.*/\1/'
じゃダメ?
1715
垢版 |
NGNG
>16
ありがとうございます
後は加工して使おうと思います。
18名無しさん@お腹いっぱい。
垢版 |
NGNG
ど素人です。
sedでMIFESのグローバル置換みたいなことってできないですか?
あるディレクトリに存在する複数のファイルをワイルドカード指定で入力して
一括して置換してもとのファイルにリダイレクトしてやるみたいな。
下記のイメージで(下記はとおらないですけど・・)。
sed -e 's/aaa/zzz/g' < * > *
1日中ぐぐってぐぐってもがいたけどわかりませんでした。すごいひと教えてください。
NGNG
すごくなくてもできる。とりあえず、シェルスクリプトすれに池。
もっと短くできるが、何をやっているかわかりやすく説明するのをかねて↓

find -type f | while read file ; do
mv ${file} ${file}.backup
cat ${file}.backup | sed -e "s/aaa/zzz/g" > ${file}
done
NGNG
次世代sed登場
ttp://news.tbs.co.jp/newseye/tbs_newseye1037945.html
NGNG
>>19
おわっ。あっさりできたっ。どうもありがとです!
シェルスクリプトすごい便利。勉強しなきゃですね・・。
NGNG
bash上でなのですが、
hoge=`echo ../tmp/work.c | sed 's/\//\\\//g'`
を実行しようとすると、
sed: -e expression #1, char 9: Unknown option to 's'
となってしまうのは、なぜですか?

/を\/に置換したいだけなのです。
NGNG
>>22
sed 関係ないやん
\ → \\
NGNG
うーん、確かにシェル向けのネタなのかもですが、
echo ../tmp/work.c | sed 's/\//\\\//g'
だけだと動くのがよくわからなくって。
NGNG
いいことを教えてあげよう。
's@hoge@hage@g'とやってごらん。
NGNG
command not found
でした・・・って、そういう意味ではないのかな・・・。
NGNG
s/..../..../g は s@....@....@g とも書ける

という意味
NGNG
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名無しさん@お腹いっぱい。
垢版 |
NGNG
space, tab を区切りにして何番目の要素って選択したほうがいいんじゃないの。
NGNG
先頭の.* が % の直前までマッチし、
\d* が長さ0、
% が % にマッチ、
最後の .* が残りの部分にマッチしてるからね。
NGNG
そもそも \d なんて使える sed あんの?
NGNG
sedsedesedesedesed
33名無しさん@お腹いっぱい。
垢版 |
NGNG
sed(sede){3}sed
34名無しさん@お腹いっぱい。
垢版 |
NGNG
hosyu
NGNG
しーずか〜な〜しーずかな〜
さーとのーあ〜きぃ〜
おーsed〜にきぃ〜のみが〜
お〜ちる〜よ〜は〜
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況