如何在shell字符串中切割最后一个字段
LINE="/string/to/cut.txt"
以便使字符串看起来像这样
LINE="/string/to/"
提前致谢!
如果有用的话,一个基于cut
的解决方案:
NEW_LINE="`echo "$LINE" | rev | cut -d/ -f2- | rev`/"
我认为你可以使用"dirname"命令。它接受文件路径作为输入,去掉文件名并返回路径。例如:
$ dirname "/string/to/cut.txt"
/string/to
这将在现代 Bourne 版本中有效,如 Dash、BusyBox ash 等,以及 Bash、Korn shell 和 Z shell 等后代版本。
LINE="/string/to/cut.txt"
LINE=${LINE%/*}
或者保留最后的斜杠:
LINE=${LINE%/*}/
fork
。 - Adrian Frühwirthecho "/string/to/cut.txt" | awk -F'/' '{for (i=1; i<NF; i++) printf("%s/", $i)}'
echo $LINE | grep -o '.*/'
也可以。