Bash,使用 grep 删除包含字符串的行

Bash,使用 grep 删除包含字符串的行

目前正在删除相关文件的全部内容:

#!/bin/bash
rpc_port="9201";
dir="/etc/apache2/ports.conf"
cat $dir | grep -v "Listen $rpc_port" > $dir

文件内容:

Listen 9200
Listen 9201
Listen 9202
Listen 9203
Listen 9204

有人可以解决这个问题或者给我一个可行的替代方案吗?

答案1

您无法写入(=重定向)到您正在读取的同一文件。要么重定向到不同的文件,要么使用 sed。

sed -i "/$rpc_port/d" $dir

相关内容