获取一行的最后一个元素,用 ; 分隔

获取一行的最后一个元素,用 ; 分隔

我有一个文件(test.txt),其中分隔符是;。我怎样才能写出每行的最后一个元素?(每个元素的长度不同)

答案1

sed 's/.*;//' < test.txt

;删除每行直到最后一个的所有内容。

或者与awk

awk -F';' '{print $NF}' < test.txt

如果您事先知道字段的数量,则可以使用cut。例如,如果有 4 个字段:

cut -d';' -f4 < test.txt

但要注意,如果一行中的字段少于 4 个,那么它将返回一个空行除了;如果只有一个字段(行中没有),在这种情况下它将输出整行(第一个字段)。中的一个已知错误功能cut

答案2

#!/bin/bash
while read line;
 do
 echo $(echo $line | awk -F ';' '{print $NF}')
done < test.txt

这是一个简单的脚本,它将把 的每一行test.txt作为输入,并打印以 分隔的最后一个元素;

答案3

或者在bash中:

#!/bin/bash

while read line ; do
    echo ${a##*;}
done

相关内容