Linux Bash-splitdir字符串
我得到了以下字符串:“/transfer/IN/name/test.txt” 现在我正试图将其拆分为字符串name,因为我需要它来进行进一步的操作 我怎样才能正确地拆分这个 我尝试过使用剪切(sed会更好吗?),但我找不到正确的方法Linux Bash-splitdir字符串,linux,bash,scripting,Linux,Bash,Scripting,我得到了以下字符串:“/transfer/IN/name/test.txt” 现在我正试图将其拆分为字符串name,因为我需要它来进行进一步的操作 我怎样才能正确地拆分这个 我尝试过使用剪切(sed会更好吗?),但我找不到正确的方法 提前感谢您的帮助。只需使用适当的工具dirname和basename链接在一起: echo $(basename $(dirname /transfer/IN/name/test.txt)) dirname=>/transfer/IN/name basename
提前感谢您的帮助。只需使用适当的工具
dirname
和basename
链接在一起:
echo $(basename $(dirname /transfer/IN/name/test.txt))
=>dirname
/transfer/IN/name
=>basename
name
sed
解决方案看起来更复杂,顺便说一句:
sed -e "s#.*/\([^/]*\)/[^/]*#\1#" -e "s#/.*##" <<< name/test.txt
sed-e“s#.*/\([^/]*\)/[^/]*\1#”-e“s#/.*”这也应该有帮助:
awk -F'/' '{print $(NF-1)}' <<<"/a/b/c/d"
如果您喜欢使用sed:
sed 's#/[^/]*$##;s#.*/##' <<<"/a/b/c/d"
sed的#/[^/]*$#;可以使用参数展开法:
#!/bin/bash
path=/transfer/IN/name/test.txt
path1=${path%/*} # Remove everything from the last /.
path1=${path1##*/} # Remove everything up to the last /.
echo "$path1"
#!/bin/bash
path=/transfer/IN/name/test.txt
path1=${path%/*} # Remove everything from the last /.
path1=${path1##*/} # Remove everything up to the last /.
echo "$path1"