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

时间:2015-06-26 15:07:44

标签: bash text replace awk field

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

它看起来像这样:

$2=$2" "$3
$3=$4
$4=""

这不起作用,即使$ 4现在是一个空字符串,它们仍然是一个约3美元的尾随标签,我相信也是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

我希望将第二行保持原样,因为第三个字段是oil但是第二个和第三个字段合并,否则我的预期输出将是:

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

1 个答案:

答案 0 :(得分:0)

Int