Shell 用于提取基于分隔符的行起始点的unix命令
我有一个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,但如果我是对的,我真的不知
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
开关,您就完成了