myfile.csv
我有一个任意更新/写入的客户端。
我编写了以下代码,我省略了 MySQL 片段:
while true
do
awk_variables_value_array=`tail -n2 myfile.csv | awk -F, '$7 == "status" {print $4, $5, $10 }'`
var1=${awk_variables_value_array[0]}
var2=${awk_variables_value_array[1]}
var3=${awk_variables_value_array[2]}
if[ "var3" -gt "0" ]
--MYSQL SNIPPET IS--
fi
done
问: tail -n2
读到最后的2行,我怎样才能改变它,所以它是倒数第二行
文件:
在哪里n是文件的最后一行
line 1
line 2
line 3
line 4
....
line n-2
line n-1
line n
当前输出产量:
line n-1
line n
我希望输出是:
line n-1
答案1
怎么样tail -n2 myfile.csv | head -n1 | awk ....
?
答案2
sed 'x;$!d' <infile
那应该对你有用。
说明:
在每一行sed
ex
更改缓冲区(交换保存空间和模式空间的内容),如果不在最后一行,它d
会删除当前模式空间(因此不会打印任何内容)。仅在最后一行sed
自动打印模式空间(包含前一行,即倒数第二行)