所以我试图使用awk
. 我读到 Tab 被用作 comm 的分隔符,所以我做了:
awk -F"\t" '{print $1}' comm-result.txt
使用 comm-result.txt 包含以下输出:
comm -3 file1 file2
但这似乎不起作用。
此推荐还将空格字符作为分隔符,当我的文件包含多个空格时,我会得到奇怪的结果。
我怎样才能只得到第一列comm
?
所以我试图使用awk
. 我读到 Tab 被用作 comm 的分隔符,所以我做了:
awk -F"\t" '{print $1}' comm-result.txt
使用 comm-result.txt 包含以下输出:
comm -3 file1 file2
但这似乎不起作用。
此推荐还将空格字符作为分隔符,当我的文件包含多个空格时,我会得到奇怪的结果。
我怎样才能只得到第一列comm
?
“所以我正在尝试获取第一列通讯输出”
comm file1 file2
" " 输出的第一列包含file1
. comm
您可以通过简单地调用( -2
suppress lines unique to file2
) 和-3
(suppress lines that同时出现在两个文件中)来跳过后处理。
comm -2 -3 file1 file2 # will show only lines unique to file1
但是,如果您别无选择,只能处理Carl 提到comm
的then的预运行输出,则可以选择:cut
cut -f1 comm-results.txt
但是,对于第 1 列为空的情况,这会导致空行。为了解决这个问题,也许awk
更合适:
awk -F"\t" '{if ($1) print $1}' comm-results.txt
---- ----------------
| |
Use tab as delimiter |
+-- only print if not empty
cut(1)
可能是比awk
这个问题更好的选择。
您可以使用comm
with -2
and -3
(如上所述),或使用comm
with grep
like:
grep -o '^\S\+' <(comm file1 file2)
所以输出不会包含任何尾随空格。comm
这对非命令很有用。