首页 > 解决方案 > 如何在多字符字符串的 linux 中使用“cut”命令

问题描述

/home/user/views/links/user1/gitsrc/database/src/

这是我的字符串。我想将它切割成 2 个字符串,例如“/home/user/views/links/user1/”“/database/src/”

所以delim实际上不是一个字符,而是一组字符,即“gitsrc”。

标签: linuxstringunixcut

解决方案


您只能将单个字符定义为cut.

您可以使用awk字段分隔符可以是单个字符、空字符串或正则表达式,例如

$ echo '/home/user/views/links/user1/gitsrc/database/src/' |
  awk -F'gitsrc' '{ print $1 " " $2 }'
/home/user/views/links/user1/ /database/src/

或者

$ echo '/home/user/views/links/user1/gitsrc/database/src/' |
  awk -F'gitsrc' '{ print $1 ORS $2 }'
/home/user/views/links/user1/
/database/src/

在您的外壳中,您可以或使用参数扩展来获取第一部分和第二部分:

$ str=/home/user/views/links/user1/gitsrc/database/src/
$ echo "${str%%gitsrc*}"  # remove longest suffix `gitsrc*`
/home/user/views/links/user1/
$ echo "${str#*gitsrc}"   # remove shortest prefix `*gitsrc`
/database/src/

推荐阅读