我有一个带有以下行的文件:
s:15:\"https://cnn.com\"
cat myfile.txt | grep https://cnn.com
有效。
但是我也想找到s:15
部分,所以我尝试:
cat myfile.txt | grep 's:15:\"https://cnn.com\"'
零结果。我在做什么错了?
答案 0 :(得分:2)
命令的问题不是引号而是反斜杠。由于原始文件中包含反斜杠,因此您也需要将反斜杠与grep匹配(因此,请转义它们):
$ cat myfile.txt | grep 's:15:\\"https://cnn.com\\"'
s:15:\"https://cnn.com\"
答案 1 :(得分:1)
使用'\''的问题在于,您需要加倍使用shell处理您的报价。您需要仅反引号\"
或使用单引号而不使用反斜杠{{1} }。两者都将使grep搜索反斜杠和引号。
尝试
grep s:15:\“ https://cnn.com \”
或
grep's:15:“ https://cnn.com”'
编辑:由于数据中存在反斜杠字符,因此我的上述答案不正确。由于grep使用反斜杠作为转义字符,因此您需要为其提供双反斜杠以匹配单个匹配项。