如何使用awk
來編寫腳本,將這樣的字符串轉換爲以逗號分隔的IP
。我有大約70K IP。將IP列表(帶單引號)轉換爲逗號分隔
Current format - '114.124.35.252' '114.79.61.186' '39.225.242.17' '202.62.16.29'
Desired format - '114.124.35.252','114.79.61.186','39.225.242.17','202.62.16.29'
如何使用awk
來編寫腳本,將這樣的字符串轉換爲以逗號分隔的IP
。我有大約70K IP。將IP列表(帶單引號)轉換爲逗號分隔
Current format - '114.124.35.252' '114.79.61.186' '39.225.242.17' '202.62.16.29'
Desired format - '114.124.35.252','114.79.61.186','39.225.242.17','202.62.16.29'
你可以只用,
sed
,如果沒有其他的內容與文件中的空間更換space
。否則,編輯您的問題更多細節。
sed 's/ /,/g' File
如果沒有文件內容,使用:
sed 's/ /,/g' <<< $string #string is the variable with the IP string
編輯:
AMD$ cat File
'114.124.35.252'
'114.79.61.186'
'39.225.242.17'
'202.62.16.29'
1.You可以使用tr
(這將與,
取代過去的換行符詳細情況見man tr
)
AMD$ tr '\n', ',' < File
'114.124.35.252','114.79.61.186','39.225.242.17','202.62.16.29',
2.Else,您可以使用此命令awk
:
AMD$ awk -v n=$(wc -l < File) '{if(NR!=n){ORS=","}else{ORS="\n"}}1' File
'114.124.35.252','114.79.61.186','39.225.242.17','202.62.16.29'
默認的記錄分隔符爲awk
是'\n'
。除最後一行外,將其更改爲,
。
感謝所有爲你的答案。 – Steve 2015-04-07 01:21:06
謝謝你的回答。文本文件中的IP列表未用空格格式化(當我以原始格式列出時,Stackoverflow將其重構爲行)。原始列表全部用這樣的換行符列出
'114.124.35.252'
'114.79.61.186'
'39.225.242.17'
'202.62.16.29' –
Steve
2015-04-07 01:30:58
在原始列表的外觀上分享鏈接 - https: //www.dropbox.com/s/u0q8b1wtw65e7qy/ip.txt?dl=0 – Steve 2015-04-07 01:52:53
嘗試:
$ awk -F- '{gsub("\047 ","\047,",$2)}1' OFS="-" file
Current format - '114.124.35.252','114.79.61.186','39.225.242.17','202.62.16.29'
習語AWK:
$ awk -v OFS=, '{$1=$1}1' ip.txt
'114.124.35.252','114.79.61.186','39.225.242.17','202.62.16.29'
$ 1 = $ 1
重新構成輸入線與所述新的輸出文件替換默認空白分隔符由-v OFS=,
定義的分隔符
是 「真」 模式,觸發所述默認操作,它是打印(現在重構)線。
請參閱[本] [1]帖子。聽起來相同。 [1]:http://stackoverflow.com/questions/6520816/replacing-the-char-using-awk – Sami 2015-04-06 09:42:37