echo:
- 输出一段字符串
- 与通配符使用可以输出当前目录下的制定文件
find:
查找文件,基本格式 find [目录] [选项] [操作],如 find . -name '*.go'
,在当前目录查找所有后缀为 .go
的文件
tee:
把输入复制到多个地方,并复制到标准输出,如 ls | tee /dve/tty out | wc -l
sort: 对输入按行排序
例: 把 .zsh_history 所有含有字符 md5 的行删除
grep "md5" -n .zsh_history | awk -F : '{printf("%sd\n"), $1}'| \
sort -r | xargs -I % sed -i ".bak" % .zsh_history
首先找到所有有 md5 的行
grep "md5" -n .zsh_history
结果是这样的:
10110:: 1440752051:0;grep "md5" -n .zsh_history
然后把行号提取出来,并在每个行号加上字符 d,字符 d 在 sed 命令中表示删除行:
awk -F : '{printf("%sd\n"), $1}'
这样行号就可以按顺序的打印出来:
10110d
10111d
10112d
但是这时候不能直接一行一行删,因为删了第一个后面的行号会变!所以需要行号从大到小删!
sort -r
这个就能逆序了。 最后就是删除指定行了
xargs -I % sed -i ".bak" % .zsh_history
这里有必要解释下 xargs: -I 参数需要跟一个替换符,这个替换符可以把之后命令中的替换符用 stdin 替换。