gpt4 book ai didi

linux - 我正在通过 shell 处理文件 :output. txt 但我不知道为什么我的代码无法读取第一行

转载 作者:太空宇宙 更新时间:2023-11-04 09:19:33 24 4
gpt4 key购买 nike

我的操作系统是 Ubuntu 14.04,这是我的代码:

while read line
do
awk '{split($0,a,",");print a[6],"qid:"NR,"1:"a[1],"2:"a[2],"3:"a[3],"4:"a[4],"5:"a[5]}'
done < output.txt

我的 output.txt 是:

0.24056906798291974,0.2640402789853635,-0.15613242425814397,0.27656222925649837,0.24663378435409408,0
-0.16397532884934443,-0.08192444714849861,-0.07868578524120746,-0.13202790903354927,-0.5865884600854129,2

等等

我的输出是

qid:1 1:-0.16397532884934443 2:-0.08192444714849861 3:-0.07868578524120746 4:-0.13202790903354927 5:-0.5865884600854129
qid:2 1:-0.6359437918203192 2:-0.8776433172563813 3:-0.2684300508327019 4:-0.7212267316402121 5:0.24663378435409408
qid:3 1:0.10572093570549834 2:0.09105791591843243 3:-0.1445154284056035 4:0.024894390454657443 5:0.24663378435409408

第一行消失了。我找不到原因,有什么想法吗?

最佳答案

while read line; do
awk '{...}'
done < output.txt

您首先使用 read line 让 shell 读取一行输入。在那之后,您正在运行 awk,没有文件名或重定向,因此它从相同的输入读取。 awk 读取到文件末尾,退出,循环重复,由于输入文件在末尾,下一次 read 返回 false 值,循环中断.

您可能想要的只是让 awk 读取文件本身:

awk '{...}' output.txt

关于linux - 我正在通过 shell 处理文件 :output. txt 但我不知道为什么我的代码无法读取第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43500860/

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