我的文件内容:
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
| 归档时间: | 
 | 
| 查看次数: | 117 次 | 
| 最近记录: |