这里通过运行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不是一个 *** 作系统。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)