Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何获取comm输出的第一列?_Linux_Shell_Command Line_Comm - Fatal编程技术网

Linux 如何获取comm输出的第一列?

Linux 如何获取comm输出的第一列?,linux,shell,command-line,comm,Linux,Shell,Command Line,Comm,因此,我尝试使用awk获取comm输出的第一列。 我读到选项卡被用作comm的分隔符,所以我做了: awk -F"\t" '{print $1}' comm-result.txt comm-result.txt包含以下输出: comm -3 file1 file2 但这似乎不起作用 这也将空格字符作为分隔符,当我的文件包含多个空格时,我会得到奇怪的结果 如何仅从comm获取第一列?可能是比awk更好的选择 “因此,我正在尝试获取comm输出的第一列” “comm file1 file2”输出

因此,我尝试使用
awk
获取comm输出的第一列。 我读到选项卡被用作comm的分隔符,所以我做了:

awk -F"\t" '{print $1}' comm-result.txt
comm-result.txt包含以下输出:

comm -3 file1 file2
但这似乎不起作用

这也将空格字符作为分隔符,当我的文件包含多个空格时,我会得到奇怪的结果

如何仅从
comm
获取第一列?

可能是比
awk
更好的选择

“因此,我正在尝试获取comm输出的第一列”

comm file1 file2
”输出的第一列包含
file1
所特有的行。只需使用
-2
(抑制
文件2
特有的行)和
-3
(抑制两个文件中出现的行),即可跳过后期处理


但是,如果您别无选择,只能处理
comm
的预运行输出,那么,
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

您可以将
comm
-2
-3
(as)一起使用,也可以将
comm
grep
一起使用,如:

grep -o '^\S\+' <(comm file1 file2)

grep-o'^\S\+'非常感谢,我不知道-1和-2选项,我想我必须处理结果。不客气。我也没有意识到这一点,直到我查看了手册页。只需稍加调整,就可以在ps输出上非常好地工作
ps-A | grep node | grep-o'^\s*\s\+'
你能提供一个例子吗?@JasonThompson,在接受的答案中已经有一个例子了。如果你在找别的东西,也许你应该问一个新问题?啊。。。我现在看到了。我在浏览答案时没有看到。请提供一个例子
grep -o '^\S\+' <(comm file1 file2)