파일의 특정 내용을 삭제하는 Linux 쉘 스크립트

파일의 특정 내용을 삭제하는 Linux 쉘 스크립트

다음 형식의 abc.csv라는 파일이 있습니다.

aa,size:12
bb,size:13
cc,size:3

size:를 제거하고 싶습니다. 파일은 다음과 같습니다.

aa,12
bb,13
cc,3

누구든지 이 작업을 수행하기 위해 쉘 스크립트를 사용하는 방법을 말해 줄 수 있습니까?

답변1

이 작업을 쉽게 사용할 수 있습니다 sed.

sed -i -- 's/size://' abc.csv

s/size://size:로 대체되는 간단한 정규식입니다 <blank>.

답변2

-i다음은 sed 버전이 이 플래그를 지원하지 않는 Unix 사용자(예: Solaris 및 sed기본적으로 BSD와 함께 제공되는 OS X) 를 위한 유용한 대체 명령입니다 .

sed 's/size://' abc.csv > tmpfile; mv tmpfile abc.csv

g특정 예에서는 "size:"가 한 줄에 여러 번 나타나지 않기 때문에 sed 명령 끝에 있는 옵션이 필요하지 않습니다.

편집하다: 더 작은 파일의 경우 불필요한 임시 파일 생성을 방지하기 위해 업데이트된 콘텐츠를 변수에 저장할 수도 있습니다.

new="$(sed 's/size://' abc.csv)"; echo "$new" > abc.csv

이 방법은 또한능력을 허용하다"$new"원본 파일을 덮어쓰기 전에 온전성 검사를 위해 변수(업데이트된 파일)를 STDOUT에 에코합니다.

관련 정보