sun*_*737 0 unix linux cut substring sed
我正在尝试提取最后一个句点(点)之后的子字符串。下面的例子。
echo "filename..txt" 应该返回“txt”echo "filename.txt." 应该返回“”echo "filename" 应该返回“”echo "filename.xml" 应该返回“xml”我在下面尝试过。但仅当字符(点)存在一次时才有效。但我的文件名可能有 0 次或多次 (点)。
echo "filename.txt" | cut -d "." -f2
Run Code Online (Sandbox Code Playgroud)
让我们使用吧awk!
awk -F"." '{print (NF>1)? $NF : ""}' file
Run Code Online (Sandbox Code Playgroud)
这会将字段分隔符设置为.并打印最后一个。但如果没有,它会打印一个空字符串。
$ cat file
filename..txt
filename.txt.
filename
filename.xml
$ awk -F"." '{print (NF>1)? $NF : ""}' file
txt
xml
Run Code Online (Sandbox Code Playgroud)