Awk命令
- 截取字符串,并去重
grep -nr "\.service" arm64_midware/ mips64_midware/ x64_deb_midware/ x64_rpm_midware/ |awk -F: '{print $1}' |awk '!a[$0]++{print}' > service
a.第一步,使用grep命令得到4个xxx_midware目录中所有包含".service"字符串的文件
b.第二步,使用awk命令进行字符串分割,只保留文件路径名称
c.第三步,使用awk命令对所有的文件路径名称进行去重
d.最后,重定向写入到service文件
Sed命令
- 在匹配的字符串前/后插入新字符串
#!/bin/bash
file_list=`cat service`
for f in $file_list
do
sed -i "s/ABC.*\.service/pre_&/g" $f
done
使用“&”字符来替代匹配到的字符串,在所有"ABC"字符串开头,".service"结尾的字符串前面添加"pre_”前缀
- 多个字符串替换
sed -e 's/\./-/3' -e 's/-/\./2'
在每个expression前加"-e"选项
- 匹配一行中第二个匹配字符串
sed -e 's/\./-/3' -e 's/-/\./2'
替换一行中第三个".“为”-",再替换第二个"-“为”.”