用某个字符分割字符串以形成路径

用某个字符分割字符串以形成路径

我有一个字符串,abc_d_e75_f10_xyz_l_11我想将其拆分,以便我想从该字符串构造一个现有目录的字符串cd

因此在这个例子中 abc_d_e75_f10_xyz_l_11我想使用_我想要写这个命令的字符来分割cd /home/userA/abc/d_e75_f10而忽略字符串的其余部分。

答案1

你可以做:

echo "abc_d_e75_f10_xyz_l_11" | sed 's/_/\//' | cut -d "_" -f1-3

这将替换第一个_/修剪字符串。

输出:

abc/d_e75_f10

答案2

您可以使用 bash shell 的内置字符串操作功能,例如

$ var="abc_d_e75_f10_xyz_l_11"
$ echo "/home/userA/${var/_//}"
/home/userA/abc/d_e75_f10_xyz_l_11

答案3

你要sed

sed是一个对文本执行搜索和替换操作的工具。

在这种情况下,您似乎想要用 替换第一次出现_/

这将做到这一点: echo "abc_d_e75_f10_xyz_l_11" | sed "s/_/\//"

斜线看起来很奇怪,但想法是"s/search/replace/"。并且/必须转义。

相关内容