最後の行を除くすべての行の末尾に特定の文字/文字列が必要なファイルがあります。各行の末尾で対応する文字/文字列を検索し、存在しない場合は、追加するシェルスクリプトを使用してこれを達成できますか?
たとえば、ファイルの内容は次のようになります。
hello1
hello
hell1
hel
end
最後の行を除くすべての行の末尾に文字1がなければならず、スクリプトの出力は次のようになります。
hello1
hello1
hell1
hel1
end
sedやawkを使って書くことができるようですが、どのように機能するのかわかりません。よろしくお願いします。
ベストアンサー1
1つのアプローチは次のとおりです。
sed -e '
s/1$/&/;t
$!s/$/1/
' file
sed -e '
$q; /1$/!s/$/1/
' file
または:
sed -e '$!{/1$/!s/$/1;}'
または空白行がない場合:
sed -e '$!s/[^1]$/&1/'