Awk
如何確保文件每行的最後一個字元以單引號字元結尾
我有一個有幾行的文件。
我希望更新文件,同時確保文件每一行的最後一個可見字元是單引號
'
。如果沒有,那麼我們應該在每行的末尾添加單引號。如果單引號是一行中的最後一個字元,則保持原樣。
貓測試.txt
fahsjhjkhkjhjhajkhjf afasfsfsfffsfasf' aaffa' sfff wfafsfsaffs' fsafsfs'afffafsasf
預期輸出:
fahsjhjkhkjhjhajkhjf' afasfsfsfffsfasf' aaffa' sfff' wfafsfsaffs' fsafsfs'afffafsasf'
該
sed
表達式s/[^']$/&'/
在以非單引號字元結尾的任何行的末尾插入單引號。在外殼中:
sed "s/[^']$/&'/" file
由於表達式包含單引號,因此我選擇將表達式寫在雙引號中。要進行就地編輯,如果它完全實現了這個非標準選項,請使用
sed
它的選項。-i
要在空行上也插入單引號,您可以使用專門針對空行的額外表達式,或者您始終可以在行尾插入單引號,然後替換由此產生的任何雙單引號。
即,要麼
sed -e "s/[^']$/&'/" -e "/^$/s//'/" file
或者
sed -e "s/$/'/" -e "s/''$/'/" file