하나의 파일 (예 : test.txt)이 있는데,이 파일에는 몇 개의 행이 들어 있습니다. 예를 들어 한 행은 다음과 같습니다. abcd = 11 예 : abcd = 12 번호는 다르지만 abcd =는 모든 경우에 똑같은 사람이 내게이 라인을 찾아서 제거하라는 명령을 내릴 수 있습니까?Unix에서 파일에서 행을 찾아 제거하는 방법은 무엇입니까?
시도 : sed -e \"/$abcd=/d\" /test.txt >/test.txt
하지만 내 파일에서 모든 줄을 제거하고 또한 시도했습니다 : sed -e \"/$abcd=/d\" /test.txt >/testNew.txt
하지만 test.txt에서 줄을 지우지 않고 새 파일 (testNew.txt) 만 만들고이 파일에 있습니다 그것은 내 라인을 제거합니다. 그러나 그것은 내가 원하는 것이 아닙니다. 텍스트에 설명을 바탕으로
$ cat test.txt
a
b
ab
ac
$abcd=1
$abcd=2
$abcd
ab
a
$abcd=3
x
$ grep -v '^\$abcd=' test.txt
a
b
ab
ac
$abcd
ab
a
x
$ ABCD를 TEST.TXT 삭제 한 후 TEST.TXT이 이름을 바꿀 수 있습니다 원하는 경우 tmp.txt는 내용
을해야합니다 지금이
을해야 할 것 쉘에 의해 파싱 될 것입니다. 그 쉘 var가 정의되어 있지 않으면 인수에서 효과적으로 "삭제"됩니다. 그것은 당신의 sed 호출을'\ "/ =/d \"'하고'='가있는 모든 행을 토스트합니다. –