用逗号和空间替换新线,以产生1行输出



示例文件

[user@linux ~]$ cat ip.txt
10.1.1.1
10.1.1.2
10.1.1.3
[user@linux ~]$

,之后使用1个空间的第一次尝试

[user@linux ~]$ tr 'n' ', ' < ip.txt
10.1.1.1,10.1.1.2,10.1.1.3,[user@linux ~]$

,

之前和之后,第二次尝试使用1个空间
[user@linux ~]$ tr 'n' ' , ' < ip.txt
10.1.1.1 10.1.1.2 10.1.1.3 [user@linux ~]$
[user@linux ~]$

,之前使用1个空间的第3尝试也产生与第二尝试相同的输出

[user@linux ~]$ tr 'n' ' ,' < ip.txt
10.1.1.1 10.1.1.2 10.1.1.3 [user@linux ~]$
[user@linux ~]$

update

sed不会改变任何东西

[user@linux ~]$ sed 's/n/, /g' ip.txt
10.1.1.1
10.1.1.2
10.1.1.3
[user@linux ~]$

perl输出与尝试2&amp相似。3

[user@linux ~]$ perl -pe 's/n/ /g' ip.txt
10.1.1.1 10.1.1.2 10.1.1.3 [user@linux ~]$

所需的输出

,之后的1个空间在这样的一行中...

10.1.1.1, 10.1.1.2, 10.1.1.3

我相信tr只能用另一个字符替换一个字符,并且不能用来插入更多字符。尝试使用此

sed ':a;N;$!ba;s/n/, /g' ip.txt

perl -pe 's/n/, /g' ip.txt

如果您想逃脱最后一个逗号,则

sed ':a;N;$!ba;s/n/, /g' ip.txt | sed 's/n$//g'

tr可以用一个字符替换一个字符。

您无法用两个字符替换。

您可以使用sed或awk

搜索

最新更新