2013-04-10 64 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