我有一个包含以下行的大文本文件(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
Run Code Online (Sandbox Code Playgroud)
如何一次删除:和\n之间的所有文本?
cut -d: -f1 file
Run Code Online (Sandbox Code Playgroud)
sed -e 's/:.*//' file
Run Code Online (Sandbox Code Playgroud)
awk -F: '{print $1}' file
Run Code Online (Sandbox Code Playgroud)
随着GNUgrep
或许多 BSD grep
小号(但不是POSIX grep
):
grep -o '^[^:]*' file
Run Code Online (Sandbox Code Playgroud)
cut
是最短的。
如果您想就地修改文件,您sed
可能有一个-i
这样做的选项- 但具体如何工作取决于您的平台。否则,> file2 && mv file2 file
最后它们中的任何一个都将起作用。
printf ',s/:.*/\nw\n' | ed file
Run Code Online (Sandbox Code Playgroud)