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
find命令
find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'
#递归查找替换
find . -type f -name '*.html' | xargs perl -pi -e 's|智慧乡村|北部山区|g'
#查找替换当前目录下包含字符串并进行替换
find -name '*.txt' | xargs perl -pi -e 's|智慧乡村|北部山区|g'
#搜索目录LOG包含显示出来
find ./ -name '*log*' -type d
find ./ -name '*Log*' -type d more
grep命令
grep -rl centent ./path |xargs sed -i 's/被替换的字符串/替换后的字符串/g'
语法:
grep [option] content ./path
grep
-n 显示行号
-r 递归调用(包含这个文件下面子文件)
-l 匹配多个文件时,显示匹配的文件名
-s:不显示不存在或无匹配文本的错误信息
-v:显示不包含匹配文本的所有行
-c:只输出匹配行的计数
-h:查询多文件时不显示文件名
用法
#从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名
#从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名
#查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名
#查找匹配的行数:
$ grep -c "被查找的字符串" 文件名
#从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名
xargs
介绍:又称管道命令,构造参数等。是给命令传递参数的一个过滤器,也是组合多个命令的一个工具
它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理 。简单的说 就是把 其他命令的给它的数据
传递给它后面的命令作为参数
xargs
-i 用 {} 代替 传递的数据
-I string 用string来代替传递的数据-n[数字] 设置每次传递几行数据
-n 选项限制单个命令行的参数个数
-t 显示执行详情
-p 交互模式
-P n 允许的最大线程数量为n
-s[大小] 设置传递参数的最大字节数(小于131072字节)
-x 大于 -s 设置的最大长度结束 xargs命令执行