用逗号和 space 替换换行符以产生 1 行输出
Replace newline with comma and space to produce 1 line output
示例文件
[user@linux ~]$ cat ip.txt
10.1.1.1
10.1.1.2
10.1.1.3
[user@linux ~]$
在 ,
之后第一次尝试 1 space
[user@linux ~]$ tr '\n' ', ' < ip.txt
10.1.1.1,10.1.1.2,10.1.1.3,[user@linux ~]$
第 2 次尝试 ,
前后 1 space
[user@linux ~]$ tr '\n' ' , ' < ip.txt
10.1.1.1 10.1.1.2 10.1.1.3 [user@linux ~]$
[user@linux ~]$
在 ,
之前进行 1 space 的第 3 次尝试也产生与第 2 次尝试相同的输出
[user@linux ~]$ tr '\n' ' ,' < ip.txt
10.1.1.1 10.1.1.2 10.1.1.3 [user@linux ~]$
[user@linux ~]$
更新
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 和 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 space 在 ,
之后像这样在一行中...
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 搜索
示例文件
[user@linux ~]$ cat 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 ~]$
第 2 次尝试 ,
[user@linux ~]$ tr '\n' ' , ' < ip.txt
10.1.1.1 10.1.1.2 10.1.1.3 [user@linux ~]$
[user@linux ~]$
在 ,
之前进行 1 space 的第 3 次尝试也产生与第 2 次尝试相同的输出
[user@linux ~]$ tr '\n' ' ,' < ip.txt
10.1.1.1 10.1.1.2 10.1.1.3 [user@linux ~]$
[user@linux ~]$
更新
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 和 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 space 在 ,
之后像这样在一行中...
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 搜索