grep
-
--color=auto会高亮匹配的关键字 -
-o只显示匹配的关键字 -
-n显示行号 -
grep -E和egrep都是按照正则匹配 -
-l只显示匹配的文件名称 -
-A num打印匹配行的后 num 行,-B num打印匹配行的前 num 行,-C num打印匹配行的前后 num 行
cut
-
-f num输出以空格分隔的第 num 列 -
-d"char"以 "char" 替换默认的制表符为列的分隔符 -
-c指定字符的宽度
sed
-
sed -i 's/pattern/replace/g' filename文本替换 -
sed -i '/pattern/d' filename会删除匹配的行 -
sed -i 's/pattern/[&]/g'& 表示所有的匹配 -
sed -i s/\(pattern1\)\(pattern2\)/\1 \2/g\1 \2 分别表示子匹配
awk
-
awk 'BEGIN{ print "start"} pattern { commands } END{ print "end"}' filename- 首先执行 BEGIN 块
- 再遍历每一行,执行 pattern { commands }
- 最后执行 END 块
- NR 表示当前行号
NF 表示当前行有多少个通过空格划分的单词
$0 表示当前行所有字符
$1 表示第一个单词
$2 表示第二个单词 -
-v var=$extern_var导入外部变量 -
-F:指定分隔符 - 可以通过
getline显示读取一行
文本切片和替换
Script
#!/bin/bash
var="hello world ~"
shell=${var/world/shell}
echo $var
echo $shell
echo ${var:6:5}
echo ${var:(-1)}
Note
- 切片的语法为
${var:start_position:length} - 最后一个位置的 position 可以用 (-1) 表示