sed一行野郎
ネタを大量に拾ってきたので、遊んでます。楽しすぎ。
## スペーシング {{{ # 1行空ける sed G # 空白行を除いて1行空ける sed '/^$/d;G' # 開けたスペースを取り除く sed 'n;d' # マッチした行の上に空白行 sed '/regexp/{x;p;x}' # マッチした行の下に空白行 sed '/regexp/G' # マッチした行の上下に空白行 sed '/regexp/{x;p;x;G}' # }}} ## 行番号 {{{ # イマイチな行番号 sed = # 何故だか2行に表示されるので、2行を1行に結合する。 sed = | sed 'N;s/\n/\t/' # 何故かawk。 awk '{print NR,"\t",$0}' # 右揃え。prel風に書くと、s/^/ / *(.{6,}\n)/ つまり・・・" | 123|"と切り取る。 sed = | sed 'N;s/^/ /; s/ *\(.\{6,\}\)\n/\1 /' # 空白行を除いて sed '/./=' | sed '/./N; s/\n/ /' # 右揃えで。 sed '/./=' | sed '/./{N; s/^/ /;s/ *\(.\{6,\}\)\n/\1 /}' # wc -l sed -n $= # }}} # 置換 {{{ # 普通の置換 sed 's/Linux/Windows/g' sed 's;Linux;Windows;g' sed 's,Linux,Windows,g' sed 'sXLinuxXWindowsXg' # 荒技 # 次はここら変挑戦予定。 # }}} ## 行の表示 {{{ # 5行目 sed -n 5p sed '5!d' sed '5q;d' # 3〜5行目 sed -n '3,5p' sed -n '3,5q,d' # 最初の行から、4行目まで sed -n '1,4p' sed 4q # 5行目〜最後の行まで sed -n '5,$p' # 最後の行 sed -n '$p' sed '$!d' # 空行の削除 sed '/^$/d' # }}} ## メモ {{{ # pattern space : 現在処理中の行 # hold space : レジスタ(クリップボード) # # p print # q quit # n next # N Next and insert # G append newline # x ホールドスペースとパターンスペースを入れ替える。 # }}}
- 2013-02-23
- 久しぶりにいじったので少し更新。
- 2007-04-25
- Make本を見ていたら、ぐぐっとくるsedスクリプトがあった。s;foo;bar;でも置換出来る。便利かも。
- 2007-03-10
- ちょっと追加。sed1line.txtどおりにやってみることにした。{x;p;x}の入れ替えはいいね。
- 2007-03-08
- sed1line.txtを見つけたので、行の制御で遊ぶ。