この特定の場合に「sed」コマンドを正しく使用する方法

この特定の場合に「sed」コマンドを正しく使用する方法

各行の形式は次のとおりです。 names.txtファイルがあります。

xxxxxx   random_string_of_characters    2015

xxxxxxが6桁の数字の場合、random_string_of_charactersは次のようになります。何もない。各文字列が次のように見えるように、各行のxxxxxxと2015の間のすべてのスペースとrandom_string_of_charactersを置き換えるには、置換コマンドを使用したいと思います。

xxxxxx 2015

それでは、これを達成するための最良の方法は何ですか?

ベストアンサー1

あなたはできます

sed -i -e 's/[[:space:]]\+.\+2015$/ 2015/' names.txt

同じファイルに保存したい場合。-i標準出力にのみ印刷するには、標準出力を削除して別のファイルにリダイレクトできます。

行末のスペースの数と一致し、その後に2015年以前のスペースが続く場合は、一致全体を「2015」に置き換えます。

別の可能性は次のとおりです。

sed -e 's/^\([[:digit:]]\{6\}\).\+\([[:digit:]]\{4\}\)$/\1 \2/'  names.txt

行の先頭の6つの数字と行の終わりの4つの数字を一致させ、それらの間にスペースを入れて一致するものを印刷します。他の行は変更されていません。

おすすめ記事