【发布时间】:2015-09-13 14:35:56
【问题描述】:
我无法弄清楚如何删除 awk 脚本中特定行的第 n 个字段。基本上我有4个字段,我将第二个和第三个字段合并为一个,设置第三个字段等于第四个字段,现在我需要消除第四个字段。
看起来像这样:
$2=$2" "$3
$3=$4
$4=""
这不起作用,因为即使 $4 现在是一个空字符串,它们仍然是一个关于 $3 的尾随制表符,我相信也是 $4。我需要一种方法将这一特定行缩减为前 3 个字段,但我无法弄清楚如何。有什么帮助吗?
输入行如下所示:
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
【问题讨论】:
标签: bash text replace awk field