我有一个看起来像的文件:
Data.s "intro.png"
Data.s "extended.png"
Data.s "animationen.png"
Data.s "buttons.png"
我需要grep只返回"
字符内的字符串。
我试过了:
grep '"(.*)"' filename
什么都不返回。
当我删除括号时,我得到匹配的每一行
我只需要"
个字符内的字符串。
答案 0 :(得分:0)
您可以使用awk
awk -F\" '/Data.s/ {print $2}' file
intro.png
extended.png
animationen.png
buttons.png
答案 1 :(得分:0)
使用GNU grep
grep -oP '(?<=").*?(?=")' file
intro.png
extended.png
animationen.png
buttons.png
答案 2 :(得分:0)
grep不支持捕获群组。
您将需要使用-P标志,它通常打开grep的Perl RegExp引擎。
由于1_CR已经提到了这个选项,我会提到一个不同的工具。
sed
$ sed 's/^.*"\(.*\)"$/\1/' /tmp/so.txt
用适当的文件路径替换/tmp/so.txt。