2013-04-10 102 views
1

下面是我輸入如何在Unix中添加分隔符後的換行符?

54.243.94.244, 54.243.113.63 

,我要像下面的出來,

54.243.94.244 
54.243.113.63 

即逗號後,我需要添加新行。 如何在Unix中實現它?請建議一些命令。

+1

你想逗號後換行,或者你希望它取代逗號?您的數據似乎用換行符替換逗號(和空白)。 – 2013-04-10 04:11:21

回答

6

另一種選擇是tr

tr ',' '\n' 
+1

tr「,」「\ n」IP_withoutTrim.txt> IP_Trim.txt 它不適用於我的錯誤! tr:0653-712選項和字符串參數的組合不合法。 用法:tr [ - [c | C] | - [c | C] ds | - [c | C] s | -ds | -s] [-A] String1 String2 tr { - [c | C] d | - [c | C] s | -d | -s} [-A] String1 – 2013-04-10 04:20:59

+0

明白了..謝謝:) cat IP_withoutTrim.txt | tr',''\ n'> IP_Trim.txt 這工作 – 2013-04-10 04:24:55

+0

@ GanzRicanz好交易。只是提示,你可以避開'cat'並重新使用重定向。 'tr',''\ n' IP_Trim.txt' – squiguy 2013-04-10 04:29:07

2

sed將這樣的伎倆:

$ echo '54.243.94.244, 54.243.113.63' | sed 's/, /\n/g' 
54.243.94.244 
54.243.113.63 

sed命令s/, /\n/g將取代逗號緊跟在換行符輸入一個空格的所有匹配。

+0

嗨,這是行不通的,我得到如下輸出, 54.243.94.244n54.243.113.63 – 2013-04-10 04:06:51

+1

@GanzRicanz:你在哪個Unix平臺上工作?有些版本的'sed'與'\ n'有問題。另外,你是否使用單引號? – 2013-04-10 04:12:10

+0

謝謝Scott,我的平臺不支持sed。我試過它的工作。謝謝你:) – 2013-04-10 04:26:03

0

一個簡單的例子是

VAR1=a 
VAR1="$VAR1"$'\n'b 
echo "$VAR" 

這將使輸出像

a 
b 
+0

在'bash'中可以使用,而不是所有的shell。它也沒有解決你具有'VAR =「54.243.94.244,54.243.113.63」'的情況,並且你想要插入換行符代替逗號和空格。 – 2013-04-10 04:13:55