修剪来自 awk 字段的值

修剪来自 awk 字段的值

我正在解析一个文件,并使用 awk 来获取第一个和第三个字段。

这一切都很好;但在第一个字段中,我想删除该字符串的最后 4 个字符;到目前为止,我还没有找到在 awk 中执行此操作的方法,唯一的方法是进行多次调用,因此我将 awk 输出保存在 2 个变量中,然后修剪第一个字符串。

有更有效的方法吗?这就是文件的样子

abcdefghi.234,12345,xyz
riosadsef.543,19432,eis
baifafsag.342,01934,eod

这就是我在循环中运行的内容

echo $output | awk -F, "{print $1, $3}"

这将正确打印该行,但随后我想修剪 $1,删除最后 4 个字符

答案1

一种方法是使用 awk 的substr函数。例如,从此输入开始:

$ cat input
abcdefghi.234,12345,xyz
riosadsef.543,19432,eis
baifafsag.342,01934,eod

我们可以打印第一列和第三列,并省略第一列的最后四个字符:

$ awk -F, '{print substr($1, 1, length($1)-4), $3}' input
abcdefghi xyz
riosadsef eis
baifafsag eod

相关内容