파일에서 #로 시작하는 모든 줄 삭제
파일에 코멘트가 있는 모든 행은 다음과 같이 시작합니다.#
. 로 시작하는 모든 행(및 그 행만)을 삭제하려면 어떻게 해야 합니까?#
? 다음을 포함하는 기타 행#
단, 행의 선두를 무시해서는 안 됩니다.
sed '/^#/d'
여기에는 "#으로 시작하는 모든 행을 찾아서 삭제하고 다른 모든 행은 그대로 둡니다."라고 쓰여 있습니다.
아무도 가장 확실한 해결책을 제시하지 못했다는 사실에 조금 놀랐습니다.
grep -v '^#' filename
이렇게 하면 문제가 해결됩니다.
하지만 일반적인 규약은 모든 것에 대한 것입니다.#
주석으로 처리되는 행의 마지막까지:
sed 's/#.*$//' filename
예를 들어, 그것이 취급하는 것은#
코멘트의 선두로서 스트링 리터럴내의 문자(대소문자와 관련이 없는 경우도 있습니다)를 지정합니다(그리고 빈 행은 남습니다).
임의의 공백으로 시작하는 행 다음에 이어지는 행#
코멘트로 취급할 수도 있습니다.
grep -v '^ *#' filename
공백이 공백일 경우 또는
grep -v '^[ ]#' filename
여기서 두 공간은 실제로 리터럴 탭 문자 뒤에 오는 공백입니다("control-v tab" 유형).
이러한 모든 명령어에서는filename
표준 입력에서 읽을 인수(예: 파이프의 일부로)
Raymond의 솔루션과는 정반대:
sed -n '/^#/!p'
#로 시작하지 않는 행을 제외하고 인쇄하지 마십시오.
파일을 직접 편집할 수 있습니다.
sed -i '/^#/ d'
공백으로 시작하는 주석 줄도 삭제하려면
sed -i '/^\s*#/ d'
보통 샤방이라면 대본의 첫 줄을 유지하고 싶기 때문에sed
다음 행으로 시작하는 행을 삭제하지 마십시오.#!
또한 해시만 포함하고 텍스트는 포함하지 않는 행을 삭제해야 합니다.모든 것을 종합하면:
sed -i '/^\s*\(#[^!].*\|#$\)/d'
모든 SED 모델에 적합하도록 하려면 백업 확장을 에 추가해야 합니다.-i
옵션:
sed -i.bak '/^\s*#/ d' $file
rm -Rf $file.bak
awk 솔루션에는 다음을 사용할 수 있습니다.
awk '/^#/ {sub(/#.*/,"");getline;}1' inputfile
이 답변은 키스의 이전 답변에 기초하고 있다.
egrep -v "^[[:blank:]]*#"
는 댓글 행을 걸러야 합니다.
egrep -v "^[[:blank:]]*(#|$)"
는, 코멘트와 빈 행을 모두 필터링 할 필요가 있습니다.이는 자주 도움이 됩니다.
에 대한 정보[:blank:]
및 기타 문자 클래스를 참조해 주세요.
빈 행도 삭제할 수 있습니다.
sed -E '/(^$|^#)/d' inputfile
특정 단어로 시작하는 파일에서 삭제하려면 다음 절차를 수행합니다.
grep -v '^pattern' currentFileName > newFileName && mv newFileName currentFileName
그래서 패턴으로 시작하는 모든 행을 삭제하고 내용을 새 파일에 쓴 다음 내용을 원본/현재 파일에 다시 복사했습니다.
과 a로 은 모두 합니다.#
"이것들"은 다음과 같습니다.
sed -E '/^$|^\s*#/d' inputfile
예를 들어, 다음의 3개의 삭제된 행(회선 번호만 포함)을 참조해 주세요.
1. # first comment
2.
3. # second comment
한 후 옵션 '네'를 할 수 .-i
입력 파일을 편집할 수 있습니다.
이것만!
확장자가 있는 모든 파일에 대해 루프가 있는 것을 다음에 나타냅니다.
ll -ltr *.filename_extension > list.lst
for i in $(cat list.lst | awk '{ print $8 }') # validate if it is the 8 column on ls
do
echo $i
sed -i '/^#/d' $i
done
언급URL : https://stackoverflow.com/questions/8206280/delete-all-lines-beginning-with-a-from-a-file
'it-source' 카테고리의 다른 글
Windows의 Cygwin 쉘을 PowerShell에서 교체할 준비가 되었습니까? (0) | 2023.04.11 |
---|---|
SQL 서버에서 group_concat을 사용하여 쿼리를 만드는 방법 (0) | 2023.04.11 |
대소문자를 구분하지 않는 비교 NSString (0) | 2023.04.11 |
같은 테이블의 한 열에서 다른 열로 데이터를 복사하려면 어떻게 해야 합니까? (0) | 2023.04.11 |
슬래시를 포함하는 변수를 sed에 전달하는 방법 (0) | 2023.04.11 |