첫 번째 답변:

첫 번째 답변:

다음으로 시작하는 8개의 파일이 있습니다.SEALS-*

각 파일에는 헤더와 데이터가 있습니다.

#Col_1\Col_2\Col_3\col_4    --- header
\\\\\\\\\\                  --- data 

빈 항목인 경우 \온라인 상태인 이 레코드를 삭제해야 합니다.

답변1

iPerl 플래그 사용제자리에서 편집:

$ perl -pi -e '$_ = "" if m{^\\\\}' file.txt

find파이프 로 내보내 려면 다음을 사용하십시오 xargs.

$ find . -type f | xargs perl -pi -e '$_ = "" if m{^\\\\}'

find명령을 사용할 때 -exec:

$ find . -type f -exec perl -pi -e '$_ = "" if m{^\\\\}' {} \;

답변2

첫 번째 답변:

모든 텍스트 조작에는 Perl이 항상 좋은 선택입니다.

perl -e 'while(<>){print if(!/(\\\\)+/)}' file > file.new

그러나 단지 쉘을 사용하고 싶다면 이 방법도 가능합니다:

grep -v '\\\\' file > file.new

좋은 결과:)

편집하다:

새 파일을 만들 수 없는 경우에도 Perl은 다음을 수행할 수 있습니다.

perl -e 'open FILE_R, "+<$ARGV[0]"; @line=<FILE_R>; open FILE_W,"+>$ARGV[0]"; foreach(@line){print FILE_W if(!/(\\\\)+/);}' file

이 긴 줄을 설명하겠습니다.

open FILE_R, "+<$ARGV[0]"; @line=<FILE_R>;

=> "읽기" 모드에서 파일을 열고 모든 데이터를 배열에 복사합니다.

open FILE_W,"+>$ARGV[0]"; foreach(@line){print FILE_W if(!/(\\\\)+/);}

=> "쓰기" 모드에서 파일을 열고 자르고 모든 데이터(\\ 라인 제외)를 파일에 씁니다.

나는 추천한다이 도구Perl에 대해 더 자세히 알고 싶다면 :)

관련 정보