我正在尝试提取最后一个句点(点)之后的子字符串。 以下示例。
echo "filename..txt"
应该返回 "txt"echo "filename.txt."
应该返回 ""echo "filename"
应该返回 ""echo "filename.xml"
应该返回 "xml"
我在下面试过了。但仅当字符(点)存在一次时才有效。但是我的文件名可能有 0 次或更多次(点)。
echo "filename.txt" | cut -d "." -f2
最佳答案
让我们使用 awk
!
awk -F"." '{print (NF>1)? $NF : ""}' file
这会将字段分隔符设置为 .
并打印最后一个。但如果没有,它会打印一个空字符串。
测试
$ cat file
filename..txt
filename.txt.
filename
filename.xml
$ awk -F"." '{print (NF>1)? $NF : ""}' file
txt
xml
关于linux - 提取一个字符后的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538376/