正则表达式
find
# 语法格式
find [path] [options] [tests] [actions]
# 示例
$ find . \( -name "_*" -or -newer while2 \) -type f -print
grep 通用正则表达式解析器(General Regular Expression Parser)
# 语法格式
grep [Options] PATTERN [FILES]
# 示例
$ grep -E [a-z]\{10\} words2.txt # -E 扩展正则表达式,可以不用 \ 做转义符
自动重定向
- 使用 cjpeg 程序将一个GIF 文件转换为一个JPEG 文件
$ cjpeg image.gif > image.jpg
#!/bin/sh
for image in *.gif # 遍历所有的 .gif 文件
do
cjpeg $image > ${image%gif}jpg # %gif 删除后缀,保留“文件名”和“.”,替换进 ${}
# 删除后,结果是 “image.”
done
ed 编辑器 (sed 没看)
#!/bin/sh
ed a_text_file << !FunkyStuff! # 标识头,可用(单双)引号
# 不用引号,变量会扩展(替换其值),用引号,保持原样
3 # 移动到第 3 行
d # 删除当前行
.,\$s/is/was/ # .,\$ 从当前行到最尾; s 替换; /is/was is换成was <-- /旧/新
w # 写入,保存
q # 退出
!FunkyStuff! # 标识尾
exit 0
sed 更简洁
#!/bin/sh
# 删除第3行,然后从第3行开始替换
sed -i '3d; 3,$ s/is/was/' a_text_file # -i 直接修改原文件
# 不加 -i,只在终端显示结果,原文件不会被实际修改