本文件
[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个空格,然后,还会产生与第二次尝试相同的输出
[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个空格...
10.1.1.1, 10.1.1.2, 10.1.1.3
我相信tr只能用另一个字符替换一个字符,并且不能用来插入更多字符。试试这个
sed ':a;N;$!ba;s/\n/, /g' ip.txt```js
要么
```js
perl -pe 's/\n/, /g' ip.txt
如果要转义最后一个逗号,则
sed ':a;N;$!ba;s/\n/, /g' ip.txt | sed 's/\n$//g'
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。