Bash 使用awk删除特定行的第n个字段

Bash 使用awk删除特定行的第n个字段,bash,text,replace,awk,field,Bash,Text,Replace,Awk,Field,我很难弄清楚如何删除awk脚本中特定行的第n个字段。基本上我有4个字段,我将第二个和第三个字段合并成一个,将第三个字段设置为第四个字段,现在我需要删除第四个字段 看起来是这样的: $2=$2" "$3 $3=$4 $4="" string1 [tab] string2 [tab] string3 [tab] string4 string1 [tab] string2 string3 [tab] string4] 这不起作用,因为即使$4现在是一个空字符串,它们仍然是一个尾随标签,大约$3,

我很难弄清楚如何删除awk脚本中特定行的第n个字段。基本上我有4个字段,我将第二个和第三个字段合并成一个,将第三个字段设置为第四个字段,现在我需要删除第四个字段

看起来是这样的:

$2=$2" "$3
$3=$4
$4=""
string1 [tab] string2 [tab] string3 [tab] string4
string1 [tab] string2 string3 [tab] string4]
这不起作用,因为即使$4现在是一个空字符串,它们仍然是一个尾随标签,大约$3,我相信也是$4。我需要一种方法将这一特定行缩减到前3个字段,但我还没有弄清楚如何进行。有什么帮助吗

输入行如下所示:

$2=$2" "$3
$3=$4
$4=""
string1 [tab] string2 [tab] string3 [tab] string4
string1 [tab] string2 string3 [tab] string4]
我试着让输出线看起来像这样:

$2=$2" "$3
$3=$4
$4=""
string1 [tab] string2 [tab] string3 [tab] string4
string1 [tab] string2 string3 [tab] string4]
这是在一个条件中,因此我需要它在当前单独的行上操作,而不是在文件中的每一行上操作

例如,假设我有以下输入文件:

12345    jones, michael    madison    0101-10101-2
12345    water    oil    0101-10101-2
12346    jones, mike    mason    0101-10101-3
12347    jones, nick    norris    0101-10101-4
我想保留上面的第二行,因为第三个字段是
,但将第二个和第三个字段合并,否则我的预期输出将是:

12345    jones, michael madison    0101-10101-2
12345    water    oil    0101-10101-2
12346    jones, mike mason    0101-10101-3
12347    jones, nick norris    0101-10101-4

这不会对文件中的每一行执行合并操作吗?这不会对文件中的每一行执行合并操作吗?