gpt4 book ai didi

Awk - 每个匹配行的不同 FS

转载 作者:行者123 更新时间:2023-12-02 08:21:44 26 4
gpt4 key购买 nike

我正在使用 awk 来匹配日志文件中的特定行。根据它匹配的行,我想使用不同的 FS。我想做一些类似于下面的事情,但它不起作用。可能吗?

#!/usr/bin/gawk -f
if ( $0 ~ "good.morning" )
{ FS=","; print $1 }
if ( $0 ~ "good.evening" )
{ FS=";"; print $2 }

我意识到我可以在脚本的 { BEGIN } 部分设置 FS 。或者我可以在调用脚本时设置 FS。但我希望能够更好地控制每个匹配记录的 FS。

最佳答案

是的,您可以通过以下方式进行:

$ cat data
ONE 1 I
TWO 2 II

THREE:3:III
FOUR:4:IV
FIVE:5:V

SIX 6 VI
SEVEN 7 VII

$ ./awkscript data
I
II

III
IV
V

VI
VII
$

awkscript如下:

#!/bin/awk -f
{
if ( $0 ~ /:/ )
{
FS=":";
$0=$0
}
else
{
FS=" ";
$0=$0
}
#print the third field, whatever format
print $3
}

$0=$0 根据当前的 FS 重新计算字段。

关于Awk - 每个匹配行的不同 FS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36614216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com