138得票10回答
如何在shebang(即#!)中使用多个参数来执行awk命令?

我想使用shebang执行一个带有--re-interval的gawk脚本。 "天真"的方法是: #!/usr/bin/gawk --re-interval -f ... awk script goes here 无法正常工作,因为gawk被调用时第一个参数为"--re-interval...

102得票13回答
如何使用sed、awk或gawk仅打印匹配的内容?

我看到很多有关使用sed、awk或gawk进行搜索和替换的示例和手册。 但在我的情况下,我有一个正则表达式,想要对文本文件运行它以提取特定值。我不想进行搜索和替换。这是从bash中调用的。让我们使用一个示例: 示例正则表达式:.*abc([0-9]+)xyz.* 示例输入文件:a b c ...

96得票4回答
awk - 连接两个字符串变量并赋值给第三个变量

在awk中,我有两个字段:$1和$2。 它们都是字符串,我想将它们连接起来并赋值给一个变量。

49得票2回答
GNU awk:在替换文本中访问捕获组

这似乎应该很简单,但是awk的gensub/gsub/sub行为对我来说一直不太清楚,现在我无法让它按照文档所说的去做(以及与其他类似工具的经验表明应该可以工作的方式)。具体而言,我想从替换字符串中访问正则表达式中的“捕获组”。以下是我认为awk语法应该如下:awk '{ gsub(/a(b*...

33得票5回答
使用gawk将每第n行打印成一行

我有一个非常大的文件,我需要获取每个第n行并将其打印成一行。 我的数据:1 937 4.320194 2 667 4.913314 3 934 1.783326 4 940 -0.299312 5 939 2.309559 6 ...

30得票2回答
使用AWK打印所有字段,字段之间用OFS分隔。

有没有一种方法可以打印所有记录,通过OFS分隔,而不需要手动输入每个列号。 #Desired style of syntax, undesired result [kbrandt@glade: ~] echo "1 2 3 4" | gawk 'BEGIN { OFS=" :-( "}; ...

27得票3回答
在awk中,是否可能在不指定索引的情况下向数组中添加一个项?

我知道awk有关联数组,但我想知道是否有awk等效于这个功能:http://php.net/manual/en/function.array-push.php。显然的解决办法是只需说:array[$new_element] = $new_element 然而,这似乎比必要的更不易读且更加 ha...

27得票5回答
为什么awk中的"not in"数组与"in"数组的工作方式一样?

这里有一个awk脚本,试图基于它们的第一列设置两个文件的差异: BEGIN{ OFS=FS="\t" file = ARGV[1] while (getline < file) Contained[$1] = $1 delete ARGV...

26得票11回答
Bash:解析带引号、逗号和换行符的CSV

假设我有以下csv文件: id,message,time 123,"Sorry, This message has commas and newlines",2016-03-28T20:26:39 456,"It makes the problem non-trivial",2016...

22得票6回答
awk中的字段分隔符可以包括多个字符吗?

我可以使用由多个字符组成的字段分隔符吗?例如,我想要分隔包含引号和逗号的单词。比如: "学校","大学","城市" 所以在这里,我想将我的FS设置为“,”。但是当我像那样定义我的FS时,我得到了一些奇怪的结果。以下是我的代码片段。awk -F\",\" ' { for(i=1;i<=...