作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的文件内容:
Google
Facebook
yahoo
cisco
juniper
oracle
firetide
attack
我想将上面的单词(列)转换成一行,如下所示:
Google Facebook yahoo cisco juniper oracle firetide attack
注意:每个单词之间应该有一个空格。
请建议我使用 sed 或 awk 实现此目的的方法。
提前致谢。
最佳答案
如果 shell 解决方案是允许的,那么尝试:
$ echo $(cat inputfile)
Google Facebook yahoo cisco juniper oracle firetide attack
以上应该适用于任何 POSIX shell。使用 bash
:
$ echo $(<inputfile)
Google Facebook yahoo cisco juniper oracle firetide attack
sed
如果我们真的必须使用 awk
或 sed
,那么这是一个 sed
解决方案:
$ sed ':a;N;$!ba; s/\n/ /g' inputfile
Google Facebook yahoo cisco juniper oracle firetide attack
上面读取整个文件 (:a;N;$!ba
) 然后用空格替换所有换行符 (s/\n//g
) .
如果输入文件可能包含行首和行尾的额外空格,我们可以删除它们:
$ sed ':a;N;$!ba; s/[[:space:]]*\n[[:space:]]*/ /g' inputfile
Google Facebook yahoo cisco juniper oracle firetide attack
关于awk - 如何使用 sed 或 awk 将单词排成一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27395234/
我是一名优秀的程序员,十分优秀!