将字符串剪切到某个字符

将字符串剪切到某个字符

我搜索了该网站,也看到了类似的问题,但我无法让它们发挥作用。我尝试遵循:将字符串拆分到特定位置但没有成功。我和科恩一起工作。

我主要想要传入的文件的目录。所以该文件将是:

/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 表示您想要字符串的第二部分),添加减号字符意味着您需要它直到字符串末尾(不使用减号会在下一次出现分隔符时停止字符串)

相关内容