zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Shell中同时读多个文件

文件shell 多个 同时
2023-09-11 14:16:05 时间
一个文件分割成多个文件 有时需要提取文件中的一个或多个列元素生成新的文件,这一操作在 Shell 里很容易实现。比如有一个数据文件 data,有三列信息:姓名、学号、班级。 redraiment 0612800134 0601 christine 0612800136 0601 zb 0612800229 0602 现在需要这个文件的第一列和第二列信息分别存到文件 f1 和 f
一个文件分割成多个文件

有时需要提取文件中的一个或多个列元素生成新的文件,这一操作在 Shell 里很容易实现。比如有一个数据文件 data,有三列信息:姓名、学号、班级。

redraiment 0612800134 0601
christine 0612800136 0601
zb 0612800229 0602

现在需要这个文件的第一列和第二列信息分别存到文件 f1 和 f2 中,可以用 awk 提取,也可以用下面这个简单 shell 程序:

#!/bin/sh

while read f1 f2 f3

 echo $f1 f1

 echo $f2 f2

多个文件合并成一个文件

如果想把多个文件重新合并成一个多列文件,而不是追加到文件尾处。例如把上列中生成的 f1 和 f2 重新组成 join.txt 。这时需要同时操作多个文件,就像 C 语言中用 fopen 同时打开多个文件,在 shell 里也是类似的。只是在 shell 里叫做“文件描述符”,用“0-9”十个数字表示。其中 0、1、2 分别是系统的标准输入、输出、错误。“3-9”则由用户只有使用。我们就可以任选两个来重定向输入。脚本如下:

#!/bin/sh

exec 3 f1

exec 4 f2

while read f1 3 read f2 4

 echo $f1 $f2 join.txt

本人的所有原创文章皆保留版权,请尊重原创作品。
转载必须包含本声明,保持本文完整,并以超链接形式注明原始作者“redraiment”和主站点上的本文原始地址。

我的邮箱,欢迎来信(redraiment@gmail.com
我的Blogger(子清行
我的Google Sites(子清行
我的CSDN博客(梦婷轩
我的百度空间(梦婷轩


redraiment 阿里巴巴-淘宝-新制造-高级技术专家,PostgreSQL、Clojure、FreeBSD等技术爱好者