텍스트 파일에서 ":"과 "\n" 사이의 모든 내용을 제거합니다.

텍스트 파일에서 ":"과 "\n" 사이의 모든 내용을 제거합니다.

다음과 유사한 줄이 포함된 큰 텍스트 파일(263줄)이 있습니다.

image_name.jpg: *lots of spaces* JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, baseline, precision 8, 1024x768, frames 3 \n
image_name.jpg: *lots of spaces* JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, comment: "CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 70", progressive, precision 8, 960x540, frames 3 \n
image_name.png: *lots of spaces* PNG image data, 752 x 760, 8-bit/color RGBA, non-interlaced \n

사이의 모든 텍스트를 제거하는 방법:그리고\N즉시?

답변1

그리고 cut:

cut -d: -f1 file

그리고 sed:

sed -e 's/:.*//' file

그리고 awk:

awk -F: '{print $1}' file

그리고암소 비슷한 일종의 영양grep또는많은 BSD grep에스(그러나 POSIX는 아님 grep):

grep -o '^[^:]*' file

cut가장 짧습니다.

파일을 그 자리에서 수정하려는 경우 그렇게 할 수 있는 sed옵션이 있을 수 있습니다 -i. 하지만 정확한 작동 방식은 플랫폼에 따라 다릅니다. 그렇지 않으면 > file2 && mv file2 file어느 쪽이든 작동합니다.

아니면ed,어디에나:

printf ',s/:.*/\nw\n' | ed file

답변2

Perl을 관찰하세요:

perl -pe 's/:.*//' file

또는 그 자리에 백업 파일을 남겨 둡니다.

perl -i.bak -pe 's/:.*//' file

관련 정보