Shell遍历文件的每一行

由于使用for来读入文件里的行时,会自动把空格和换行符作为一样分隔符,因为当行里有空格的时候,输出的结果会很乱,所以……

cat input.txt |while read line
> do
> echo $line
> done

或者:

while read line
> do
> echo $line
> done < input.txt

再举个实际点的例子(把所有目录权限修改为755,所有文件为644):

# find ./ -type f>filelist
# find ./ -type d>dirlist
# cat dirlist |while read i; do chmod 755 "${i}"; done
# cat filelist |while read i; do chmod 644 "${i}"; done

转载自:http://www.hao32.com/unix-linux/338.html

时间: 2024-11-15 06:17:01

Shell遍历文件的每一行的相关文章

Shell遍历文件的每一行[转载]

1 #!/bin/sh 2 3 while read line 4 do 5 echo $line 6 done < /home/jms/lab/input.txt

shell读取文件的每一行

写法一: ---------------------------------------------------------------------------- #!/bin/bash while read line do echo $line done < filename(待读取的文件) ---------------------------------------------------------------------------- 写法二: --------------------

shell读取文件的每一行内容并输出【转】

写法一: #!/bin/bash while read line do echo $line done < file(待读取的文件) 写法二: #!/bin/bash cat file(待读取的文件) | while read line do echo $line done 写法三: for line in `cat file(待读取的文件)` do echo $line done 说明:for逐行读和while逐行读是有区别的,如: $ cat file aaaa bbbb cccc dddd

Shell遍历文件,对每行进行正则匹配

Shell查看文件的最后5行,并对每行进行正则匹配,代码如下: #!/bin/sh pattern="HeartBeat" tail -n 5 /home/test/log/log_20150205.log | while read line do if [[ $line =~ $pattern ]] then echo "Match" else echo "No match" fi echo $line done

shell遍历文件夹并执行命令

背景: 有一个源码包里面包含很多子目录和makefile,打包后的压缩包太大,需要将make生成的所有二进制文件删除然后再打包. 需求: 因此,要求在制定目录的所有递归子目录中执行make clean以清楚所有的目标文件. 代码: 写了一段简单的shell脚本,有两个功能: 1.遍历所有子目录,如果存在Makefile就执行make clean(当然也可以干更多的事): 2.列出所有子目录下大于10M(当然也可以指定其他值)的文件. 话不多说上代码: #!/bin/bash run_make()

shell:读取文件的每一行内容并输出

写法一:#!/bin/bash while read linedoecho $linedone < file(待读取的文件) 写法二: #!/bin/bash cat file(待读取的文件) | while read linedoecho $linedone 写法三: for line in `cat file(待读取的文件)`doecho $linedone 以上三种写法都是我摘自网上的,共同分享一下. http://blog.de3eb.cn/2012/03/shell%E8%AF%BB%

windows下Perl如何读取大文件的最后一行(总结)

Perl中读取文件最后一行的方法很多,比如 (1)将文件读入数组,取最后一个元素 open (FILE,"file.txt") or die "$!"; my @arr=<FILE>;; close FILE; my $last=$arr[$#arr]; #$last里就是最后一行的内容了. (2)一行一行读入,到最后一行时输出 open (FILE,"file.txt") or die "$!"; while (

Qt递归非递归遍历文件

qt最大的优势在于跨平台,虽然都说qt设计优良,文档丰富,但是qt一直不温不火的.不过跨平台确实可以节省不少人力物力,"一次编写,到处编译",对于短期搭建框架也有优势. #include <QDebug> #include <QDir> #include <QFile> #include <QFileInfo> #include <QFileInfoList> #include <QQueue> #include

Python-使用for循环遍历文件

open操作文件 r:    以读方式打开,默认就是这个模式 w:   以写方式打开 a:    以追加模式打开 r+:   以读写模式打开 w+:  以读写模式打开 a+:   以读写模式打开 rb:    以二进制读模式打开 wb:   以二进制写模式打开 ab:    以二进制追加模式打开 rb+   以二进制读写模式打开 wb+  以二进制读写模式打开 ab+   以二进制读写模式打开 写入文件后,一定要执行close关闭文件 fd = open('/tmp/tmp.txt','w')