grep 'a>' txt
大小写敏感
grep -i "a" txt
同时匹配大小写
grep "a[bB]" txt
查找0-9 重复三次的所在行
grep '[0-9]{3}' txt
任意条件匹配
grep -E "word1 | word2 | word3" file
同时匹配三个
grep word1 file | grep word2 |grep word3
##################################
tr 用法
-c 用字符串1 中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1 中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
[a-z] a-z 内的字符组成的字符串。
[A-Z] A-Z 内的字符组成的字符串。
[0-9] 数字串。
octal 一个三位的八进制数,对应有效的ASCII 字符。
[O*n] 表示字符O 重复出现指定次数n。因此[O*2]匹配OO 的字符串。
tr 中特定控制字符的不同表达方式
速记符含义八进制方式
a Ctrl-G 铃声 07
b Ctrl-H 退格符 10
f Ctrl-L 走行换页 14
n Ctrl-J 新行 12
r Ctrl-M 回车 15
t Ctrl-I tab 键 11
v Ctrl-X 30
将所有大写转换成小写字母
tr A-Z a-z
将空格替换为换行
tr " " "n"
删除空行
tr -s "[ 12]" < plan.txt
tr -s ["n"] < plan.txt
删除文件中的^M,并代之以换行
tr -s "[ 15]" "[n]" < file
tr -s "[r]" "[n]" < file
替换passwd 文件中所有冒号,代之以tab 键
tr -s "[:]" "[ 11]" < /etc/passwd
tr -s "[:]" "[t]" < /etc/passwd
增加显示路径可读性
echo $PATH | tr ":" "n"
tr 在vi 内使用,在tr 前加处理行范围和感叹号('$'表示最后一行)
1,$!tr -d 't'
Mac -> UNIX
tr "r" "n"<macfile > unixfile
UNIX -> Mac
tr "n" "r"<unixfile > macfile
DOS -> UNIX
Microsoft DOS/Windows 约定,文本的每行以回车字符(r)并后跟换行符(n)结束
tr -d "r"<dosfile > unixfile
UNIX -> DOS:在这种情况下,需要用awk,因为tr 不能插入两个字符来替换一个字符
awk '{ print $0"r" }'<unixfile > dosfile
##################################
awk 用法
b 退格
f 换页
n 换行
r 回车
t 制表符Tab
c 代表任一其他字符
-F 改变FS 值(分隔符)
~ 匹配
= 赋值
== 匹配
+= 叠加
[:alnum:] 字母数字字符
[:alpha:] 字母字符
[:cntrl:] 控制字符
[:digit:] 数字字符
[:graph:] 非空白字符(非空格、控制字符等)
[:lower:] 小写字母
[:print:] 与[:graph:]相似,但是包含空格字符
[:punct:] 标点字符
[:space:] 所有的空白字符(换行符、空格、制表符)
[:upper:] 大写字母
[:xdigit:] 十六进制的数字(0-9a-fA-F)
内建变量
$n 当前记录的第n 个字段,字段间由FS 分隔










