Shell脚本合并文本文件

Shell脚本合并文本文件,第1张

有时候,要遇到将多个文件合并成一个的需要,除了重复的复制和粘贴,还可以通过Shell来辅助实现。下面是两种实现方案。

这里通过运行merge.sh可以将同目录下的所有的txt文件合并到all.all。

效果如下:

上面的方法中,需要写一个Shell脚本,有些麻烦。其实,可以直接通过cat命令来实现。

默认地,cat命令可以直接接收多个参数,这样,通过重定向可以很方便地合并文件:

但是,如果想在各个文件内容的前面加一些说明,就像前面的shell脚本一样,就需要利用cat命令的一个小feature。下面是man cat中的描述:

利用这一点,我们可以在文件参数之间间隔加入“-”。这样,每当读取完一个文件的内容,cat都会从标准输入读取下一个文件的说明信息。结束输入的时候,我们需要按Ctrl+d输入EOF,来结束标准输入读取。如下:

前面的脚本中用到了shell字符串变量的截取,在下面补充下截取方法说明:

shell将多个文件合并并以回车符作为换行符并删除文件:tr命令的 *** 作是针对文件的 *** 作,它把整个文本当做 *** 作的对象,所以可以直接去除文件中的换行符。

不应该用单引号或双引号吧!应该用反引号(就是ESC下面那个键),以前我也犯过类似的毛病。因为反引号在shell中的字符串会被解释成为命令。还有echo的-e选项是对转义字符进行解析,默认的是不解析的。

shellKorn Shell(ksh):

有很长一段时间,只有两类shell供人们选择——Bourne shell用来编程,csh用来交互。为了改变这种状况,AT&T贝尔实验室的David Korn开发了ksh。ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。

ksh广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inline editing)等功能。ksh是一个交互式的命令解释器和命令编程语言。它符合POSIX——一个 *** 作系统的国际标准。POSIX不是一个 *** 作系统。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11446504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存