【发布时间】:2023-03-03 05:08:25
【问题描述】:
我正在读取一个长日志文件并使用 bash 将列拆分为变量。
cd $LOGDIR
IFS=","
while read LogTIME name md5
do
LogTime+="$(echo $LogTIME)"
Name+="$(echo $name)"
LOGDatamd5+="$(echo $md5)"
done < LOG.txt
但这真的很慢,我不需要所有的行。最后 100 行就足够了(但日志文件本身需要所有其他行用于不同的程序)。
我尝试使用tail -n 10 LOG.txt | while read LogTIME name md5,但这也需要很长时间,而且我根本没有输出。
我测试但没有成功的另一种方法是:
cd $LOGDIR
foo="$(tail -n 10 LOG.txt)"
IFS=","
while read LogTIME name md5
do
LogTime+="$(echo $LogTIME)"
Name+="$(echo $name)"
LOGDatamd5+="$(echo $md5)"
done < "$foo"
但这总共只给了我 foo 的输出。 while 循环内的变量中没有写入任何内容。
可能有一种非常简单的方法可以做到这一点,但我看不到......
干杯, 巴勒纳肯
【问题讨论】:
-
为什么在需要 100 的时候使用 tail -10?
-
这只是为了测试目的,我忘了改变它。对问题没有影响。
标签: bash variables while-loop