gpt4 book ai didi

shell - 如何检测awk中END之前的最后一行

转载 作者:行者123 更新时间:2023-12-02 00:37:53 26 4
gpt4 key购买 nike

我正在尝试将最后一行添加到我正在创建的文件中。如何在 awk 中的 END 之前检测到文件的最后一行?我需要这样做,因为变量在 END block 中不起作用,所以我试图避免使用END

awk ' { do some things..; add a new last line into file;}'

END之前,我不想要这个:

awk 'END{print "something new" >> "newfile.txt"}'

最佳答案

一种选择是使用getline函数来处理文件。成功时返回 1,文件末尾返回 0,错误时返回 -1

awk '
FNR == 1 {

## Process first line.
print FNR ": " $0;

while ( getline == 1 ) {
## Process from second to last line.
print FNR ": " $0;
}

## Here all lines have been processed.
print "After last line";
}
' infile

假设 infile 包含以下数据:

one
two
three
four
five

输出将是:

1: one                                                                                                                                                                                                                                       
2: two
3: three
4: four
5: five
After last line

关于shell - 如何检测awk中END之前的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12141938/

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