Bash - Split dir string

时间:2016-12-07 10:05:12

标签: linux bash scripting

我收到以下字符串:'/transfer / INC / name/test.txt'

现在我正在尝试将其拆分为字符串 name ,因为我需要它进行进一步的操作。

如何正确拆分?

我尝试过 cut sed 会更好吗?),但我无法找到合适的方法。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

这也应该有所帮助:

awk -F'/' '{print $(NF-1)}' <<<"/a/b/c/d"

它输出:

c

如果你喜欢使用sed:

sed 's#/[^/]*$##;s#.*/##' <<<"/a/b/c/d"

答案 1 :(得分:1)

只需使用合适的工具dirnamebasename链接在一起:

echo $(basename $(dirname /transfer/IN/name/test.txt))
  • dirname =&gt; /transfer/IN/name
  • basename =&gt; name

sed解决方案看起来更复杂BTW:

 sed -e "s#.*/\([^/]*\)/[^/]*#\1#" -e "s#/.*##" <<< name/test.txt

(2个表达式来处理完整的相对案例name/test.txt