ファイルの各行の最後の文字が一重引用符文字で終わるかどうかを確認する方法

ファイルの各行の最後の文字が一重引用符文字で終わるかどうかを確認する方法

複数行のファイルがあります。

ファイルの各行に表示される最後の文字が一重引用符であることを確認しながら、ファイルを更新したいと思います'。そうでない場合は、各行の末尾に一重引用符を追加する必要があります。

一重引用符が行の最後の文字である場合は、そのままにしてください。

猫テスト.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

おすすめ記事