各行の形式は次のとおりです。 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つの数字を一致させ、それらの間にスペースを入れて一致するものを印刷します。他の行は変更されていません。