选择引号中的文本

发布于 2024-12-09 08:20:03 字数 127 浏览 0 评论 0原文

如何选择双引号中的文本?

# cat list.txt
File "abc.txt" not found.

我只想返回 abc.txt 我不确定哪个是实现此目的的最佳工具。

How do I select the text found in double quotes?

# cat list.txt
File "abc.txt" not found.

I want to return only abc.txt
I am not sure which is the best tool for this purpose.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

黑凤梨 2024-12-16 08:20:03

要查找双引号内的所有文本,请尝试此操作。

grep -o '"[^"]*"' list.txt

单引号是为了防止 shell 中的模式;实际的模式表示匹配双引号,后跟一系列非双引号的字符,然后是另一个双引号。 grep-o 选项表示仅打印匹配项(默认情况是当模式上有匹配项时打印整行)。

To find all text within double quotes, try this.

grep -o '"[^"]*"' list.txt

The single quotes are to prevent the pattern from the shell; the actual pattern says to match a double quote, followed by a sequence of characters which are not double quote, followed by another double quote. The -o option to grep says to only print the matches (the default is to print the whole line when there is a match on the pattern).

孤君无依 2024-12-16 08:20:03
perl -nle'print $1 while /"([^"]*)"/g' list.txt

使用 GNU grep 如果每行出现一次:

grep -Po '(?<=")[^"]*(?=")'  list.txt
perl -nle'print $1 while /"([^"]*)"/g' list.txt

With GNU grep if you have one occurrence per line:

grep -Po '(?<=")[^"]*(?=")'  list.txt
土豪 2024-12-16 08:20:03
kent$  echo 'File "abc.txt" not found.'|sed -r 's/.*"([^"]*)".*/\1/g'
abc.txt
kent$  echo 'File "abc.txt" not found.'|sed -r 's/.*"([^"]*)".*/\1/g'
abc.txt
手心的海 2024-12-16 08:20:03
echo 'File "abc.txt" not found.' | awk '{print substr($2,2,length($2)-2)}'
echo 'File "abc.txt" not found.' | awk '{print substr($2,2,length($2)-2)}'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文