linux 如何在两个不同的引号之间获取字符串

yzckvree  于 2024-01-06  发布在  Linux
关注(0)|答案(1)|浏览(289)

我试图从scanimage -L获取设备地址,返回

  1. device `canon_dr:libusb:003:004' is a CANON DR-C125 scanner

字符串
我想出了这个

  1. grep -Po '`\K[^']+'


但不了解如何正确隔离特殊符号

u4vypkhs

u4vypkhs1#

您可以使用

  1. grep -Po "\`\\K[^']+"

字符串
请注意,在双引号字符串中,反引号和反斜杠需要转义。
你也可以在这里使用awk

  1. awk -F"[\`']" '{print $2}'


参见online demo

  1. #!/bin/bash
  2. s='device `canon_dr:libusb:003:004'"'"' is a CANON DR-C125 scanner'
  3. grep -Po "\`\\K[^']+" <<< "$s"
  4. # => canon_dr:libusb:003:004
  5. awk -F"[\`']" '{print $2}' <<< "$s"
  6. # => canon_dr:libusb:003:004

展开查看全部

相关问题