2016-11-11 60 views
3

在一個文本文件(Windows)我有:如果在AWK中存在某個字符,如何加入下一行?

sometexthere" 
nothingtodohere 
yessomethinghere" 
etc 

使用AWK(在Ubuntu)如何刪除撇號「在該行的結尾,用分號替換爲:並加入下一行?

,所以它看起來是這樣的:

sometexthere:nothingtodohere 
yessomethinghere:etc 

回答

3

這樣:

awk '1' RS='"\n' ORS=':' yourfile 

只需設置您的記錄sep。雙引號加上折線,以及你的輸出記錄sep。到加入角色。

DOS換行符只是調整regex

awk '1' RS='"\r\n' ORS=':' yourfile 

注意:這是什麼1手段?

簡短的回答,這只是一個快捷方式,以避免使用打印語句。在當條件得到匹配awk的默認動作是打印輸入行,例如:

$ echo "test" |awk '1' 
test 

這是因爲1將永遠true,所以這個表達式等價於:

$ echo "test"|awk '1==1' 
test 
$ echo "test"|awk '{if (1==1){print}}' 
test 
+0

出於某種原因該文件是完全相同的,當我使用你的例子.. – Hopelessone

+0

nope,仍然完全相同(Ubuntu的),複製並粘貼在一個文件中的例子,並進行測試。 – Hopelessone

+0

argh,對不起,我添加了額外的信息問題,(文本文件是一個Windows文本文件),&我在Ubuntu中使用AWK ...這樣的信息有幫助嗎? – Hopelessone

相關問題