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

yzckvree  于 4个月前  发布在  Linux
关注(0)|答案(1)|浏览(53)

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

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

字符串
我想出了这个

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


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

u4vypkhs

u4vypkhs1#

您可以使用

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

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

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


参见online demo

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

相关问题