LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: najia01

如何把所有的行并成一行

[复制链接]
发表于 2004-8-4 10:24:26 | 显示全部楼层
恩,恐怕不能再简单了
发表于 2004-8-5 08:21:53 | 显示全部楼层
echo `<file`
这个怎么解释?
如果直接执行 <file 没有输出
如果把echo `<file` 解释为:把<file的输出替换到 echo 的参数上
也应该没有输出才对呀?
发表于 2004-8-5 11:24:46 | 显示全部楼层
`<file`是`cat file`的简写,也可写成$(cat file)或$(<file)
发表于 2004-8-5 11:51:47 | 显示全部楼层
cat file -- 输出文件内容到标准输出
echo   -- 显示给定字符串到标准输出,每个字符串用空格分隔;每个echo另起一行输出。
echo `cat file` -- 以”cat file“的输出作为输入,文件的每一行作为一个字符串,用空格分隔。
发表于 2004-8-5 11:56:17 | 显示全部楼层
最初由 KornLee 发表
`<file`是`cat file`的简写,也可写成$(cat file)或$(<file)

Kornlee兄讲的很对。
--BASH man手册--
The command substitution $(cat file) can be replaced by the equivalent but faster $(< file).
发表于 2004-8-5 11:56:45 | 显示全部楼层
例如:

  1. $ cat text
  2. !Type:Bank
  3. D08/28/2000
  4. T-8.15
  5. N
  6. PCHECKCARD SUPERMARKET
  7. ^
  8. D08/28/2000
  9. T-8.25
  10. N
  11. PCHECKCARD PUNJAB RESTAURANT
  12. ^
  13. D08/28/2000
  14. T-17.17
  15. N
  16. PCHECKCARD SUPERMARKET

  17. $ echo `<text`
  18. !Type:Bank D08/28/2000 T-8.15 N PCHECKCARD SUPERMARKET ^ D08/28/2000 T-8.25 N PCHECKCARD PUNJAB RESTAURANT ^ D08/28/2000 T-17.17 N PCHECKCARD SUPERMARKET
复制代码

注意“^”符号前后以空格分隔。
发表于 2004-8-5 12:00:53 | 显示全部楼层
根据bash的man手册,$(< file) 等价于$(cat file)。
发表于 2004-8-5 12:30:16 | 显示全部楼层
教主看的太细啦,还有时间的问题。
可是我测了几个文件都是
echo `cat filename`更快些? :ask
发表于 2004-8-5 12:33:52 | 显示全部楼层
又试了一下,
发现使用了>/dev/null
echo $(< file) 快于 echo $(cat file)
但是如果直接到输出,结果相反。
发表于 2004-8-5 12:35:01 | 显示全部楼层
不知道这里哪个结果更能反应程序本身执行的速度?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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