複数行のファイルがあります。
ファイルの各行に表示される最後の文字が一重引用符であることを確認しながら、ファイルを更新したいと思います'
。そうでない場合は、各行の末尾に一重引用符を追加する必要があります。
一重引用符が行の最後の文字である場合は、そのままにしてください。
猫テスト.txt
fahsjhjkhkjhjhajkhjf
afasfsfsfffsfasf'
aaffa' sfff
wfafsfsaffs'
fsafsfs'afffafsasf
予想出力:
fahsjhjkhkjhjhajkhjf'
afasfsfsfffsfasf'
aaffa' sfff'
wfafsfsaffs'
fsafsfs'afffafsasf'
ベストアンサー1
このsed
式は、s/[^']$/&'/
一重引用符ではなく文字で終わる行の末尾に一重引用符を挿入します。
シェルから:
sed "s/[^']$/&'/" file
式には一重引用符が含まれているので、二重引用符で式を作成することにしました。内部編集を実行するには、この非標準オプションを実装する場合は、sed
そのオプションを使用してください。-i
空行に一重引用符を挿入するには、空行に特別に追加の式を使用するか、次のようにします。いつも行の末尾に一重引用符を挿入し、結果の二重引用符を置き換えます。
つまり、
sed -e "s/[^']$/&'/" -e "/^$/s//'/" file
または
sed -e "s/$/'/" -e "s/''$/'/" file