下面的代碼工作:AWK gensub正則表達式反斜槓0和反斜槓1不靈
// {
print gensub("[a-z][A-Z]」,"&","g")
}
但這並不:
// {
print gensub("[a-z][A-Z]","\0","g")
}
而且也不該是最後我想要達到的目標:
// {
print gensub(「([a-z])([A-Z])",」\1 \2","g")
}
爲什麼這不起作用,我該如何使這項工作。這個劇本的目的:名字是用不用空格分隔的姓氏給出的,我需要把它們分開。名字的第一個字母是大寫字母,我不想在第一個名字之前留出空格。我可以將FS
設置爲''
並檢查每個字符,但我想學習gensub。我也沒有找到gsub的用法,因爲它給我的是匹配的數量,而不是替換後的字符串。
另一種可能的解決方案,但我不知道如何使這項工作是將gensub中的目標從"g"
設置爲"2,3,4"
等等,但我無法在這裏提供一個以上的參數。
請不要建議替代解決方案只是如何使上述工作的一個
如何更改智能報價和真實報價?你是如何認識諸如\\而不是\?的東西的? –
idk人們如何創造「聰明的引號」(我從你的問題複製/粘貼),但我認爲這是有關使用一些編輯器(可能是Windows的?),所以也許找到一個不同的編輯器(我使用' vi')?同樣,我也瞭解其他一切 - 閱讀文檔和經驗。 FWIW我強烈推薦Arnold Robbins編寫的Effective Awk Programming第4版 - 如果你有任何其他的awk書,那麼就把它扔掉。 –
也是關於向gensub提供超過1個目標的問題。你能解決這個問題嗎?我不知道你在說什麼要擺脫//?我的代碼在沒有它們的情況下工 –