删除文件中匹配的不区分大小写的字符串

时间:2016-04-03 17:53:54

标签: macos bash

我尝试使用follow sed命令从文件中删除字符串:

pattern="$name;$date;$hour"
sed -i.bak "/${pattern}/I d" $BOOKFILE

但问题是: 在OS X上 - sed不支持不区分大小写的匹配

我需要使用不敏感的大小写从文件中删除字符串。 例如,如果我插入" a; 20161010; 11"而不是" A; 20161010; 11"它必须识别并从文件中删除相同的字符串。

我不能像perl或TCL等其他语言使用脚本......

1 个答案:

答案 0 :(得分:0)

我解决了!

# Delete the line containing the pattern '$name;$date;$hour' and create/update a file.bak
pattern=$(grep -i "$name;$date;$hour" $BOOKFILE)
sed -i.bak "/${pattern}/ d" $BOOKFILE 

我使用grep -i命令(-i =不敏感的情况)来获取模式,然后我使用了正确模式的sed。