文章目录
比较文件内容
比较file1、file2文件内容不同.
diff -c file1 file2 | colordiff
grep、sed、awk
-
grep
使用正则表达式搜索文本,并把匹配的行打印出来.
-r:递归查找
# 递归查找 grep -r *.conf *
-n:显示行号
# 过滤符合条件的行,显示行号 grep -rn *.conf *
-v:反向匹配
-E:正则匹配# 过滤文件的注释和空行 grep -Ev '^#|^$' elasticsearch.yml
-
正则表达式
-
正则表达式单字符
-
正则表达式其他符号
-
边界字符 、头尾字符
^ 字符,头字符,放在一串字母前边,代表以此开头. grep '^root' passwd $ 符号,如false$,代表以false字符结束 ^$ 代表空行,grep '^$' passwd
-
元字符
w: 匹配任何字符类字符,包括下划线,相当于([a-zA-Z0-9_]) W: 匹配所有非字符类字符,相当于([^a-zA-Z0-9_]) b: 代表单词分割. 如,grep '\bx\b' passwd,可以将单词前后分隔的x字符选出来,但不会选择单词 中出现的x
-
多词匹配
\*: 零次或多次匹配前面的字符或子表达式. 例子:grep 'se*' test.txt \+: 一次或多次匹配前面的字符或表达式. 例子:grep 'se\+' test.txt. 注意这里+前面加反斜杠. ?: 零次或1此匹配前面的字符或表达式. 如:grep 'se\?' test.txt. 注意这里?前面要加反斜杠. 括号使用: grep '\(se\)*' test.txt. 注意括号前面要加反斜杠. 指定重复次数: grep '[0-9]\{2,3\}' passwd
-
-
-
sed 行编辑器
处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”. 接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出.
-
命令格式
sed [options] 'command' file(s) options选项: -e<script>或--expression=<script>:以选项中的指定的script来处理输入的文本文件; -n或--quiet或——silent:仅显示script处理后的结果;
-
p 打印相关的行
cat /etc/passwd | sed -n '10p' // 打印第10行内容 cat /etc/passwd | sed -n '10,20p' // 打印第10-20行内容 cat /etc/passwd | sed -n '10,20!p' // 不打印第10-20行内容 cat /etc/passwd | sed -n '10~2p' // 间隔行,打印出10,12,14... cat /etc/passwd | sed -n '/root/,/games/p' // 正则匹配行范围 sed -n '/root/p' /etc/passwd // 打印匹配的行
-
a 在行后面增加内容
cat /etc/passwd | sed '2a***' // 第二行后增加*** cat /etc/passwd | sed '1,2a***' // 在行范围后增加***
-
i 在行前面插入内容
-
c 把选定的行改为新内容
cat /etc/passwd | sed '2c abcd' // 第二行后修改成abcd cat /etc/passwd | sed '1,2c abcd' // 范围内行修改成abcd
-
d 删除行
cat /etc/passwd | sed '2d' // 删除第二行 cat /etc/passwd | sed '/root/d' // 删除掉root行
-
s 替换
-
g表示全局替换
ifconfig bond0|sed -n ‘/inet /p’|sed ‘s/inet.//’ |sed ‘s/netmask.*//’ # 获取某个网卡的ip地址
-
-