我有一个包含多行格式的文件:
Item A 62.7 97.9 9.0
Item A B C 54.2 98.4 10.0
Another Item A 51.0 98.8 7.0
Another Item A--B--C 57.0 98.8 1.0
我想编写一个bash脚本,它将获取每行的所有最后值,(例如9.0,10.0,7.0和1.0)。
我遇到的问题是我无法使用cut -d" " -f 4
,因为项目名称中有不同数量的空格。此外,在使用sed
时,我不能使用“超过2个空格”作为分隔符,因为有时项目名称和第二列之间只有一个空格(如示例中的最后一行,C和5)。
我想也许我可以从最后解析每一行,但我不确定这是否可行。任何帮助将不胜感激,因为我不太熟悉bash脚本。
谢谢
答案 0 :(得分:3)
如果你不介意最后一个额外的逗号,你可以这样做:
awk '{$1=$1;print $NF}' ORS="," ./infile
答案 1 :(得分:2)
从最后解析这条线将是一个很好的方法。您可以使用sed -e 's/^.* //'
答案 2 :(得分:1)
如果您想要分隔的最后一项,您可以随时撤销分隔列表的第一项撤消。
echo ($LINE) | rev | cut -d" " -f1 | rev