# 在目录下查找文件并打印路径,子目录也会查找
find /home/test -name test.sh -print
12
命令选项:
# 模糊搜索,在$HOME目录下查找后缀txt的文件
find ~ -name "*.txt" -print
# 使用正则表达式,查找当前目录及子目录里大写开头的文件
find . -name "[A-Z]*" -print
# 在/etc里找host开头的文件
find /etc -name "host*" -print
# 查找两个小写字母开头,后跟两个数字的文件
find . -name "[a-z][a-z][0-9][0-9].txt" -print
# 当前目录下找权限为755的文件
find . -perm 755 -print
# 忽略/Apps/bin目录进行查找
find /apps -name "/apps/bin" -prune -o -print
# 用ls -l 列出所找到的文件
find . -type f -exec ls -l {} ;
# 删除5天前的日志
find . -name "*.LOG" -mtime +5 -ok rm {} ;
find /home/hap/src/* -name "*.o" -exec rm {} ;
# 使用xargs
# 用grep命令在所有的普通文件中搜索device单词
find / -type f -print | xargs grep "device"
123456789101112131415161718192021
# 查找大文件
find . -type -size +200M
# 查找大于400M的文件
find . -type f -size +400M -print0 | xargs -0 du -h
1234
全称是 Global Regular Expression Print,使用正则表达式搜索文本。命令格式: grep [options]主要参数:
pattern 正则表达式主要参数:
示例
# 从.txt文件中查找包含'a'字符串的文本文件
grep 'a' *.txt --color=auto
# 搜索包含连续4个字符的文件
grep '[a-z]{4}' *.txt
1234
sed 是利用脚本来处理文本文件,可以自动编辑一个或多个文件,简化重复操作。
命令格式sed [-nefr] [操作]
参数说明
动作说明
sed -n '2p' sed.txt 打印第2行
sed -n '1,3p' sed.txt 打印1~3行
sed -n '1,3p' sed.txt >sed.tmp 1~3行输出到sed.tmp文件里
sed -n '1,$p' sed.txt 显示全文
sed -n '1p' sed.txt 打印首行
sed -n '$p' sed.txt 打印最后一行
sed '2p' sed.txt 输出全部文本,然后输出第2行
sed -n '/should/'p sed.txt 查找should的行
sed -n '/should/=' sed.txt 输出匹配的行号
sed -n '/./'p sed.txt 特殊字符查询,需要进行转义
sed '1,3d' sed.txt 删除1~3行
sed '/should/d' sed.txt 删除包含should的行
sed 's/PS/ps/' sed.txt 替换每行第一个单词
sed 's/PS/ps/g' sed.txt 全文替换
sed '1,3 s/should/SHOULD/g' sed.txt 指定行替换
sed '1 s/should/SHOULD/g' sed.txt 指定行范围替换
控制字符输入方式:
^M
1.Ctrl+v
2.M
3.释放Ctrl
123456789101112131415161718192021
与sed 相比, awk 倾向于一行中分成数个字段来处理,适合处理小型的文本数据。
awk处理过程: 依次对每一行进行处理,然后输出
awk命令样式
特殊要点:
diff [选项] <参数>常用命令选项:
# 最简单的用法
diff file1 file2
# 并排格式输出
diff file1 file2 -y -W 50
1234
另外 cmp命令也可以进行文件比较。由于现在可视化工具很多,这些命令很多人日常工作中其实很少会用到;在文件处理方面现在脚本语言Python等用来作文件处理也更方便。