Shell 用于提取基于分隔符的行起始点的unix命令

Shell 用于提取基于分隔符的行起始点的unix命令,shell,unix,command-line,Shell,Unix,Command Line,我有一个Unix命令,该命令输出文件内容,每行以相应的文件名作为前缀: C:\lessgov.txt | WHY LESS GOVERNMENT IS BETTER GOVERNMENT C:\lessgov.txt | A rant... C:\todos.txt | TODOS C:\todos.txt | buy bread C:\todos.txt | shine shoes 我可以使用什么精确的命令来删除垂直条之后的所有内容(包括垂直条)?(我在想sed,但如果我是对的,我真的不知

我有一个Unix命令,该命令输出文件内容,每行以相应的文件名作为前缀:

C:\lessgov.txt | WHY LESS GOVERNMENT IS BETTER GOVERNMENT
C:\lessgov.txt | A rant...

C:\todos.txt | TODOS
C:\todos.txt | buy bread
C:\todos.txt | shine shoes
我可以使用什么精确的命令来删除垂直条之后的所有内容(包括垂直条)?(我在想
sed
,但如果我是对的,我真的不知道如何使用它。)

我实际上使用的是Windows,但我有一个可以使用大多数Unix命令的端口

编辑:

这起作用了

cmd> search $dirs | tail -n5 | concat --prefix | grep CPCMS | sed "s/|.*//"

search
concat
是自定义的。

这里有一些选择,如果需要在
|

 sed 's/ *|.*//' file.txt
 sed 's/|.*//' file.txt
保留
|

 sed 's/ *|.*//' file.txt
 sed 's/|.*//' file.txt

这里有一些选择,如果需要在

 sed 's/ *|.*//' file.txt
 sed 's/|.*//' file.txt
保留
|

 sed 's/ *|.*//' file.txt
 sed 's/|.*//' file.txt

许多unix工具都可以完成这项工作

假设文件/目录名中没有空格: e、 g
grep

grep -o '^\S\+' file
awk:

塞德,切。。。。我也能做到


如果您的路径中有空格,那么也不难处理,只需使用FS/Separator表达式即可

许多unix工具都可以完成这项工作

假设文件/目录名中没有空格: e、 g
grep

grep -o '^\S\+' file
awk:

塞德,切。。。。我也能做到


如果您的路径中有空格,那么也不难处理,只需使用FS/Separator表达式即可

我能想到的最冗长、最容易记住的命令是:

-fN
表示“选择第n个字段”,而
-dC
表示“按字符C拆分”

在您的情况下,
对|u文件| cut-f1-d'|进行cat处理

$ cat the_file 
C:\lessgov.txt | WHY LESS GOVERNMENT IS BETTER GOVERNMENT
C:\lessgov.txt | A rant...

C:\todos.txt | TODOS
C:\todos.txt | buy bread
C:\todos.txt | shine shoes
$ cat the_file | cut -f1 -d'|'
C:\lessgov.txt 
C:\lessgov.txt 

C:\todos.txt 
C:\todos.txt 
C:\todos.txt 

如果您想保留该空行,请添加
-s
开关,就完成了。

我能想到的最详细、最容易记住的命令是:

-fN
表示“选择第n个字段”,而
-dC
表示“按字符C拆分”

在您的情况下,
对|u文件| cut-f1-d'|进行cat处理

$ cat the_file 
C:\lessgov.txt | WHY LESS GOVERNMENT IS BETTER GOVERNMENT
C:\lessgov.txt | A rant...

C:\todos.txt | TODOS
C:\todos.txt | buy bread
C:\todos.txt | shine shoes
$ cat the_file | cut -f1 -d'|'
C:\lessgov.txt 
C:\lessgov.txt 

C:\todos.txt 
C:\todos.txt 
C:\todos.txt 
如果您想保留该空行,添加
-s
开关,您就完成了