Shell中同时读多个文件
2013-10-05 12:29
337 查看
(转载自:http://blog.csdn.net/redraiment/article/details/4476191?reload)
一个文件分割成多个文件
有时需要提取文件中的一个或多个列元素生成新的文件,这一操作在 Shell 里很容易实现。比如有一个数据文件data,有三列信息:姓名、学号、班级。
redraiment 0612800134 0601
christine 0612800136 0601
zb 0612800229 0602
现在需要这个文件的第一列和第二列信息分别存到文件 f1 和 f2 中,可以用
awk 提取,也可以用下面这个简单 shell 程序:
#!/bin/sh while read f1 f2 f3 do echo $f1 >> f1 echo $f2 >> f2 done
多个文件合并成一个文件
如果想把多个文件重新合并成一个多列文件,而不是追加到文件尾处。例如把上列中生成的 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 do echo $f1 $f2 >> join.txt done
相关文章推荐
- shell随堂笔记
- shell学习之突发奇想 ^_^ 打印9*9乘法表
- 实战Linux Shell(2):布署Bash Shell 的环境
- linux的shell编程,动态获取tomcat进程
- PowerShell读取Windows产品密钥 推荐
- PowerShell读取Windows产品密钥
- shell中的特殊字符
- Shell十三问学习笔记
- shell中${}的妙用
- shell 中的循环
- linux shell if 参数
- linux更改shell
- Bash 实例,第 3 部分
- Bash 实例,第 2 部分
- Bash 实例,第一部分
- shell中冒号结合等号, 加号, 减号的使用小结
- bash: 在未预料的“(”附近出现语法错误
- 两则Shell常见用法
- 通过adb shell操作WIFI
- 【Git入门之一】Git是神马?