我有一个文件(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