如何在文件中删除具有匹配字符串但不以#开始的行?

  • 本文关键字:开始 字符串 文件 删除 bash
  • 更新时间 :
  • 英文 :


我正在编写一个bash脚本来删除文件中具有模式的某些行。该文件包含许多类似的模式,并且只希望删除以'export ROS_'开头但不以'#'开头的行。

#export ROS_MASTER_URI=http://192.168.1.34:11311
#export ROS_HOSTNAME=192.168.1.34
export ROS_MASTER_URI=http://192.168.1.33:11311
export ROS_HOSTNAME=192.168.1.33

您可以使用sed工具:

sed "/^export ROS_/d" file

或只使用bash的语法:

while read line; do
case "$line" in
"export ROS_"*) ;;
*) echo "$line" ;;
esac
done < file

更简单:

while read line; do
[[ "$line" =~ ^"export ROS_" ]] || echo "$line"
done < file

相关内容

最新更新