“Shell遍历文件的每一行”的版本间的差异
跳到导航
跳到搜索
第54行: | 第54行: | ||
done | done | ||
+ | </pre> | ||
+ | =把所有目录权限修改为755,所有文件为644= | ||
+ | <pre> | ||
+ | 再举个实际点的例子(把所有目录权限修改为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 | ||
</pre> | </pre> | ||
=see also= | =see also= |
2020年2月3日 (一) 12:21的版本
原因
由于使用for来读入文件里的行时,会自动把空格和换行符作为一样分隔符,因为当行里有空格的时候,输出的结果会很乱,所以……
得到一个批量删除 redis 脚本
cat r del hello_coin_limit_config_1186883712095948803_1 [root@prod-hello-nginx02 evan]# bash f del hello_coin_limit_config_1186883712095948803_1 如何批量 执行 evan@bsd-latop:~/test % cat r del hello_coin_limit_config_1186883712095948803_1 del hello_coin_liiiiiidsafasjfig_1186883712095948803_1 evan@bsd-latop:~/test % cat ff cat $1 | while read line #cat r | while read line do echo $line done evan@bsd-latop:~/test % bash ff r del hello_coin_limit_config_1186883712095948803_1 del hello_coin_liiiiiidsafasjfig_1186883712095948803_1 cat $1 | while read line #cat r | while read line do echo $line done 最终得到一个批量删除redis key 脚本 #!/bin/bash cat $1 | while read line do redis-cli -c -h 172.31.22.218 -p 7000 -a hello $line redis-cli -c -h 172.31.22.218 -p 7001 -a hello $line redis-cli -c -h 172.31.16.135 -p 7002 -a hello $line redis-cli -c -h 172.31.16.135 -p 7003 -a hello $line redis-cli -c -h 172.31.23.43 -p 7004 -a hello $line redis-cli -c -h 172.31.23.43 -p 7005 -a hello $line done
把所有目录权限修改为755,所有文件为644
再举个实际点的例子(把所有目录权限修改为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
see also
如上面不行就参考这个shell实现:读文件一行,sed操作文件某一行
其它参考
循环出每一行数据,再分割每个字符 做处理 cat file_name | while read line do echo $line; array=(${line///t/ }) appkey=${array[0]} file_name=${array[1]} done; 原文链接:https://blog.csdn.net/yan88888888888888888/article/details/103298561