搜索
示例文件
[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 ~]$
在 ,
[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