我搜索了该网站,也看到了类似的问题,但我无法让它们发挥作用。我尝试遵循:将字符串拆分到特定位置但没有成功。我和科恩一起工作。
我主要想要传入的文件的目录。所以该文件将是:
/home/me/working/from/here/howareyou.txt
所以我想得到:
/home/me/working/from/here/
我已经尝试过这个但没有成功:
THEDIR="${1%//*}"
但它只是吐出整个参数。任何帮助,将不胜感激。谢谢。
答案1
使用一根斜线
THEDIR="${1%/*}"
较慢但更容易记住的是dirname
。
答案2
我喜欢将 cut 与 rev 结合使用。基本上,您可以通过管道将文件的完整路径传递给 rev,以反转字符串名称。然后,通过管道将其剪切,在所需的字段编号后添加“-”,然后再次反转。
这会导致类似的结果:
echo "$name" | rev | cut -d'/' -f2- | rev
如果您还不知道,请围绕分隔符(由 -d 表示)分割字符串,然后选择所需的字段(由 -f 表示)(传递 2 表示您想要字符串的第二部分),添加减号字符意味着您需要它直到字符串末尾(不使用减号会在下一次出现分隔符时停止字符串)