如何转义 ag 中的单引号(不使用双引号)

How can I escape a single quote in ag (without using double quotes)

搜索这样的表达式时,如何转义 ag 中的单引号?

ag ''react-redux''

我知道 "'react-redux'" 是这种情况下的一种解决方案,但我想要一种允许我使用单引号的解决方案。这样我就不必担心使用双引号时 $% 等所需的复杂转义序列。

你可以用\x27来表示单引号。 (\x27 只是单引号的 ascii 码) 因此,您可以使用:

ag '\x27react-redux\x27'

参考:How to escape single quote in sed? --Whosebug

虽然 \x27 有效,但它很晦涩。标准方法是三重单引号。所以,如果你想转义 'react-redux' 周围的单引号,你可以用一对单引号将每个单引号括起来:'''react-redux'''。 例如:

$ag '''DD-MON-YYYY''' users.sql
19:       TO_CHAR(lock_date, 'DD-MON-YYYY') AS lock_date,
20:       TO_CHAR(expiry_date, 'DD-MON-YYYY') AS expiry_date,
23:       TO_CHAR(created, 'DD-MON-YYYY') AS created,

因此,一个仅匹配引用项目的简单示例:

$touch test.txt
$echo value >> test.txt
$echo '''value''' >> test.txt
$echo value >> test.txt
$ < test.txt 
value
'value'
value
$ ag '''value''' test.txt
2:'value'