至尊技术网 - grep https://www.zzwws.cn/tag/grep/ Linux find|grep|sed命令基本语法 https://www.zzwws.cn/archives/6340/ 2022-05-13T10:30:00+08:00 find命令语法:find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression] [action] 说明:path... 查找路径,可以指定多个,默认为当前路径expression 查找的条件,包括根据文件名、类型、大小、修改时间等进行查找,默认查找当前路径所有文件action: 处理动作,对符合条件的文件所做的操作,默认为显示到标准输出查找条件:-name 根据文件名查找, 支持glob,即包括: *,?,[],[^],来匹配文件名例如:find /etc/ -name passwd 精确查找 find /etc/ -name '*passwd*' 匹配查找 -iname 根据文件名查找,不区分大小写 -regex pattern 使用正则表达式来匹配文件(路径) grep命令1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行:grep test *file2、以递归的方式查找符合条件的文件:grep -r test *3、反向查找:grep -v test *4、忽略大小写查找:grep -i test *6、显示查询结果行号:grep -n test *7、显示总共有多少行符合条件:grep -c test *8、匹配符合条件上下文N行:grep -C N test *9、只匹配单词:grep -w test *10、查找并列出匹配的文件名:grep -l test *11、查找并列出不匹配的文件名:grep -L test *12、过滤带注释行或空行:grep -v '^#' * | grep -v '^$' *sed命令sed -i "s/查找字段/替换字段/g" 文件名 -i 表示inplace edit,就地修改文件-r 表示搜索子目录-l 表示输出匹配的文件名s表示替换,d表示删除示例:sed -i "s/shan/hua/g" lishan.txt把当前目录下lishan.txt里的shan都替换为hua替换字段包括子目录:sed -i s/查找字段/替换字段/g `grep -rl 查找字段 *` 补充:sed命令的其他用法如下1、删除行首空格sed 's/^[ ]*//g' filename sed 's/^ *//g' filename sed 's/^[[:space:]]*//g' filename 2、行后和行前添加新行行后:sed 's/pattern/&\n/g' filename 行前:sed 's/pattern/\n&/g' filename //&代表pattern 3、使用变量替换(使用双引号)sed -e "s/$var1/$var2/g" filename 4、在第一行前插入文本sed -i '1 i\插入字符串' filename 5、在最后一行插入sed -i '$ a\插入字符串' filename 6、在匹配行前插入sed -i '/pattern/ i "插入字符串"' filename 7、在匹配行后插入sed -i '/pattern/ a "插入字符串"' filename 8、删除文本中空行和空格组成的行以及#号注释的行grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d