하나의 디렉토리에 수백 개의 텍스트 파일이 있습니다. 모든 파일에 대해 HETATM으로 시작하는 모든 행을 삭제하려고합니다. 나는 csh 나 bash 코드가 필요할 것이다.특정 단어로 시작하는 여러 텍스트 파일의 줄 제거
나는 grep을 사용할 것이라고 생각하지만, 확실하지 않습니다.
하나의 디렉토리에 수백 개의 텍스트 파일이 있습니다. 모든 파일에 대해 HETATM으로 시작하는 모든 행을 삭제하려고합니다. 나는 csh 나 bash 코드가 필요할 것이다.특정 단어로 시작하는 여러 텍스트 파일의 줄 제거
나는 grep을 사용할 것이라고 생각하지만, 확실하지 않습니다.
사용 sed
을 :
sed -i -e '/^HETATM/d' *.txt
이 곳에서 모든 파일을 처리 할 수 있습니다.
-i
은 "적절한 위치"를 의미합니다.
-e
다음 명령을 실행하는 것을 의미합니다.
/^ HETATM /은 "HETATM으로 시작하는 줄 찾기"를 의미하고, 다음은 d
은 "삭제"를 의미합니다.
먼저 백업 해주세요! 그것은 (파일 $$.tmp
에서) grep
의 출력 임시 파일을 만드는
#!/bin/bash
for f in *.txt
do
grep -v "^HETATM" "%f" > $$.tmp && mv $$.tmp "$f"
done
을하고 명령 경우에만 원본 파일을 덮어 쓰기 :
당신이 정말로 grep
을 함께하고 싶어, 당신이 할 수 성공적으로 실행됩니다.
일치하지 않는 모든 라인을 얻을 수 grep
의 -v
옵션을 사용하여 다음과 같은
grep -v '^HETATM' input.txt > output.txt
설명해 주셔서 감사합니다. 나는 천천히 배우고있다. – Josh