开发者社区> 问答> 正文

用逗号和空格替换换行符以产生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个空格,然后,还会产生与第二次尝试相同的输出

[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

展开
收起
祖安文状元 2020-01-06 15:56:58 373 0
1 条回答
写回答
取消 提交回答
  • 我相信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'
    
    2020-01-06 15:57:10
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载