我有一个字符串,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/"
。并且/
必须转义。