悠悠楠杉
网站页面
语法:
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 使用正则表达式来匹配文件(路径)
1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行:grep test *file
2、以递归的方式查找符合条件的文件: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 -i "s/查找字段/替换字段/g" 文件名
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
s表示替换,d表示删除
示例:sed -i "s/shan/hua/g" lishan.txt
把当前目录下lishan.txt里的shan都替换为hua
当字符串包含斜杠/时
// 使用不同的分隔符:
sed 's#Hello/World#Goodbye#' filename
// 转义斜杠:
sed 's/Hello\/World/Goodbye/' filename
替换字段包括子目录
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