如何使用grep修剪特定文本

Jam*_*mes 4 linux bash awk grep

我需要用grep修剪一些文本,我尝试过各种其他方法并且运气不好,所以例如:

C:\Users\Admin\Documents\report2011.docx: My Report 2011
C:\Users\Admin\Documents\newposter.docx: Dinner Party Poster 08
Run Code Online (Sandbox Code Playgroud)

如何修剪文本文件,以便修剪":"及其后的所有字符.

例如,输出如下:

C:\Users\Admin\Documents\report2011.docx
C:\Users\Admin\Documents\newposter.docx
Run Code Online (Sandbox Code Playgroud)

mat*_*hew 6

用awk?

awk -F: '{print $1':'$2}' inputFile > outFile
Run Code Online (Sandbox Code Playgroud)

你可以使用grep(注意-o只返回匹配的文本)

grep -oe "^C:[^:]" inputFile > outFile 
Run Code Online (Sandbox Code Playgroud)


bra*_*zzi 5

这很简单grep -o

$ grep -o '^C:[^:]*' input
C:\Users\Admin\Documents\report2011.docx
C:\Users\Admin\Documents\newposter.docx
Run Code Online (Sandbox Code Playgroud)

如果您可以有其他驱动器,只需替换C.

$ grep -o '^.:[^:]*' input
Run Code Online (Sandbox Code Playgroud)

如果一行可以以不同于驱动器名称的内容开头,则可以考虑在行开头出现驱动器名称以及不存在此类驱动器名称的情况:

$ grep -o '^\(.:\|\)[^:]*' input
Run Code Online (Sandbox Code Playgroud)