如何剪切此shell字符串中的最后一个字段
LINE="/string/to/cut.txt"
这样字符串就像这样
LINE="/string/to/"
提前致谢!
答案 0 :(得分:57)
对于它的价值,基于cut
的解决方案:
NEW_LINE="`echo "$LINE" | rev | cut -d/ -f2- | rev`/"
答案 1 :(得分:18)
我认为您可以使用“dirname”命令。它接收输入文件路径,删除文件名部分并返回路径。例如:
$ dirname "/string/to/cut.txt"
/string/to
答案 2 :(得分:14)
这将适用于现代Bourne版本,如Dash,BusyBox ash等,以及后代,如Bash,Korn shell和Z shell。
LINE="/string/to/cut.txt"
LINE=${LINE%/*}
或保留最后的斜线:
LINE=${LINE%/*}/
答案 3 :(得分:1)
echo "/string/to/cut.txt" | awk -F'/' '{for (i=1; i<NF; i++) printf("%s/", $i)}'
答案 4 :(得分:0)
echo $LINE | grep -o '.*/'
也有效。