对于gawk,如何在与awk脚本相同的命令中设置FS和RS?

时间:2019-04-14 10:30:52

标签: awk

我有一个awk命令,它使用

返回输入流中的重复项

$db = mysqli_connect('localhost', 'root', '', 'tc'); mysqli_select_db($db) or die(mysqli_error($db));

但是,在执行此操作之前,我想更改字段分隔符并记录分隔符。我为此使用的命令是

awk '{a[$0]++}END{for (i in a)if (a[i]>1)print i;}'

但是我很难做到这一点。有没有一种方法可以有效地将这两个命令合而为一?彼此管道连接似乎也不起作用。

1 个答案:

答案 0 :(得分:1)

在读取任何输入之前执行BEGIN规则的动作。

awk 'BEGIN{FS="\n";RS="\n\n"}{a[$0]++}END{for (i in a)if (a[i]>1)print i;}'

或者您可以使用以下命令行选项来指定它们:

awk -F '\n' -v RS='\n\n' '{a[$0]++}END{for (i in a)if (a[i]>1)print i;}'