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

관련 정보