Shell脚本
2023年6月10日 2023年11月17日
便签
- | |
---|---|
花括号 | 使用花括号偷懒 |
head | macOS使用ghead |
花括号的使用
可以使用花括号定义集合集合,集合内有多个可以枚举的项,使用逗号分隔
{项1, 项2, 项3...}
遇到花括号时,会对集合进行展开,将集合内的每一项与外面的字符串进行组合,然后返回全部组合项
xxx.conf{,.bak} 展开为 xxx.conf xxx.conf.bak
和前方的命令配合起来,就可以起到多个入参的效果
1cp xxx.conf{,.bak} 2# cp xxx.conf xxx.conf.bak
接受多个参数的命令都可以这样使用,但前提是这些参数有共同部分,或者有某些规律
echo cp mkdir mv for
1mkdir app{,.bak} 2echo {1..5} 3echo {a..z} 4echo {001..10} # 前导0 5echo {001..10..2} # 前导0 + 步进 6echo {a..z}{0..9} # 组合:26 * 10
tr命令
去除引号
1tr -d '"'
使用sed
1sed 's/\"//g'
sed命令
macOS
runoob
安装gsed
1brew install gsed
匹配行打印
p
1gsed -n "/abc/p" file
修改源文件
-i
1gsed -i "/abc/d" file # 匹配行删除
匹配行删除
d
1gsed "/abc/d" file
匹配行文本替换
s
- 首个匹配项
1gsed "s/abc/edf/" file
- 所有匹配项
g
1gsed "s/abc/edf/g" file
awk命令
指定分隔符,打印第3个参数
1awk -F ',' '{print $3}'
file命令
查看文件编码
1file FILE
echo命令
输出单行
1var="hello world!" 2echo $var
输出多行
1echo -e "\nhello world!\n"
head命令
macOS
安装coreutils
1brew install coreutils
输出文件去掉末尾4行的文本
1ghead -n -4 xx.txt