【发布时间】:2011-06-01 13:46:54
【问题描述】:
如何剪切这个shell字符串中的最后一个字段
LINE="/string/to/cut.txt"
让字符串看起来像这样
LINE="/string/to/"
提前致谢!
【问题讨论】:
如何剪切这个shell字符串中的最后一个字段
LINE="/string/to/cut.txt"
让字符串看起来像这样
LINE="/string/to/"
提前致谢!
【问题讨论】:
不管怎样,基于cut 的解决方案:
NEW_LINE="`echo "$LINE" | rev | cut -d/ -f2- | rev`/"
【讨论】:
dirname 一次只能在一条路径上运行。例如,在find 输出上,dirname 的替代选项是find ... -exec dirname {} \;。 -exec 让它变得非常慢。
我认为你可以使用“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。
echo "/string/to/cut.txt" | awk -F'/' '{for (i=1; i<NF; i++) printf("%s/", $i)}'
【讨论】:
echo $LINE | grep -o '.*/' 也可以。
【讨论】: