如何在Linux下使用cut命令实现多字符串

xytpbqjk  于 11个月前  发布在  Linux
关注(0)|答案(1)|浏览(110)

/home/user/views/links/user1/gitsrc/database/src/
这是我的字符串。我想把它切成2个字符串,如“/home/user/views/links/user 1/”“/database/src/”
所以delim实际上不是一个字符,而是一组字符,即“gitsrc”。

8cdiaqws

8cdiaqws1#

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/


在你的shell中,你可以或者使用参数展开来获得第一部分和第二部分:

$ 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/

相关问题