LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1408|回复: 21

如何把所有的行并成一行

[复制链接]
发表于 2004-8-3 09:37:53 | 显示全部楼层 |阅读模式
比如,有文件a.txt如下:
------------------------------
hello
world,
my
lovely
girl,
and
my
love
------------------------------
限定用sed grep awk来解决。
呵呵,请大家多多赐教。^_^
发表于 2004-8-3 11:30:14 | 显示全部楼层

  1. awk '{printf $0}END{printf "\n"}'
复制代码


ps:建议兄弟先看教程。
发表于 2004-8-3 16:06:53 | 显示全部楼层
来个sed的
[xiaocong@xiaocong temp]$ cat a
hello
world,
my
lovely
girl,
and
my
love
[xiaocong@xiaocong temp]$ sed -e '{:a;N;$!ba;s/\n//g}' a
helloworld,mylovelygirl,andmylove
发表于 2004-8-3 16:30:45 | 显示全部楼层
方法N多! 比如可以在vi中直接修改

  1. : %s/\n/ /
复制代码
发表于 2004-8-3 16:55:06 | 显示全部楼层

再请教一下
1:vi中能让匹配到的上一行和上上一行合并或下一行和下下一行合并吗?sed是可以实现的,但vi中有什么好办法吗?
2:为什么%s/$//g会不工作,是不是在文件中$后面还跟了个\n,而
使%s/$//g并没有起作用?
发表于 2004-8-3 17:03:40 | 显示全部楼层
发表于 2004-8-3 19:03:49 | 显示全部楼层
呵呵,vi手册居然有四百多页,打出来都不好意思,慢慢看吧
发表于 2004-8-3 19:17:53 | 显示全部楼层
其实简单的方法是用tr[/code]
tr '\n' ' ' <file[/code]
发表于 2004-8-4 09:25:58 | 显示全部楼层
这里有更简单的:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2004-8-4 09:46:20 | 显示全部楼层
最初由 ServerOnly 发表
这里有更简单的:

echo `<file`
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表