2
我正在嘗試在awk中編寫一個腳本,(其中包括)用兩個連續的雙引號替換所有雙引號實例。但由於某種原因,我似乎無法妥善避免我的雙引號。使用gsub將雙引號替換爲兩個雙引號?
因此,例如:
Mary had a "little" lamb
將成爲
Mary had a ""little"" lamb
感謝好心!
我正在嘗試在awk中編寫一個腳本,(其中包括)用兩個連續的雙引號替換所有雙引號實例。但由於某種原因,我似乎無法妥善避免我的雙引號。使用gsub將雙引號替換爲兩個雙引號?
因此,例如:
Mary had a "little" lamb
將成爲
Mary had a ""little"" lamb
感謝好心!
你可以這樣說:
echo 'Mary had a "little" lamb' | awk '{ gsub(/"/, "&&") } 1'
輸出:
Mary had a ""little"" lamb
的1
末調用awk的默認塊{ print $0 }
。
它甚至與SED短:
echo 'Mary had a "little" lamb' | sed 's/"/&&/g'
嗯,這很有趣。作爲一個更一般的AWK問題,AWK是否將整個文件緩衝到內存中,然後採取行動,還是僅以每行爲基礎運行?我想我想說的是,昂貴的記憶方式? (我現在還不能批准你的答案 - 我必須等5分鐘。) – Waffles
@ user1116858:awk只在內存中保存一條記錄,默認情況下記錄是一條線。 – Thor
非常感謝! – Waffles