awk 模式:删除字段中 space(包括)之后的所有内容

awk pattern: remove everything after space (including) in a field

我是 AWK 的新手。我正在尝试删除制表符分隔文件中 space 之后的所有内容(在下面的愚蠢示例中从 $1 开始),或者获取第一个 space 之前的所有内容并放入 awk 中的变量(相同的)。所以例如我有像

这样的行
abc 0000    12sometext  stuff

如何删除 ' 0000'(可以是任意长度,唯一的规则是 $1 中第一个 space 之后的所有内容)并以 $1 结束 abc。类子函数不在 AWK 中,但我可以以某种方式使用正则表达式吗?

如果我需要将结果 abc 分配给一个变量,那么使用函数 split 中的数组(在 AWK 中)似乎是不必要的,难道没有其他方法吗?

awk -F'\t' '{n = split(, array, " "); result = array[1]; print result}' file.txt

您可以使用 sub 替换 </code> 中 space 之后的所有内容:</p> <pre><code>awk 'BEGIN{FS=OFS="\t"} {sub(/ .+/, "", )} 1' file abc 12sometext stuff