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
我是 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