我正在尝试使用 sed 删除文件的行,但我不想删除这些行,除非搜索字符串完全匹配。IE。
#!/bin/bash
set -x
file="list1"
index=0
while read line ;
do
if [ ! "$line" == "@@@" ];
then
MYARRAY[$index]="$line"
#index=$(($index+1))
let index++
else
break
fi
done < $file
#echo "MYARRAY is: ${MYARRAY[*]}"
#echo "The file: ${index}"
index1=0
for i in "${MYARRAY[@]}"
do
lineNumber=$((index1 + 1))
sed -i "/${MYARRAY[$index1]}/d" "$file"
let index1++
done
sed -i "/@@@/d" "$file"
#remove empty lines
sed -i '/^$/d' "$file"
所以我有一个测试文件(list1):
line1
line2
line3
line4
line5
line6
@@@
line1_1
line2_1
在脚本运行后,我最终删除了所有行,因为“line1”和“line2”也匹配“line1_1”和“line2_1”
任何帮助,将不胜感激!!