|
カテゴリ:シェル
タブ区切りのファイルに3列目の前に1列(空)を追加しようとした場合、
sed -e 's/^\([^\t]*\t[^\t]*\t\)/\1\t/' xxxxx.dat と書けるが、10列目の前の場合に同様に書くのはしんどい。 グルーピングの繰り返しを使えば、簡単に書ける。 sed -e 's/^\([^\t]*\t\)\{9\}/\1\t/' xxxxx.dat これだと、参照先は9個目の列となるので正しく置き換えられない。 グルーピングをさらにグルーピングすると sed -e 's/^\(\([^\t]*\t\)\{9\}\)/\1\t/' xxxxx.dat 正しく置き換えられる。 注意点としては、\2も繰り返しの最後のマッチ部分と参照できるので 他にもグルーピング指定している場合は、\3以降となる。 おそるべし、sed (正規表現?)
Last updated
2011/11/16 12:45:39 PM
コメント(0) | コメントを書く
[シェル] カテゴリの最新記事
|