我有这个数据
photo for Kurtis Hardy" data-
photo for Paul Hoven" data-sr
我想过滤这个只得到中间的名字。我用这个命令来获取这些行
cat File| grep -E -o 'photo for.{0,20}'
答案1
这里不需要猫。让猫独自一人。
我假设每个名称都在“照片”之后开始,并以第一个“结束”,如您的示例所示。如果情况并非如此,请告诉我。否则我们将需要更多地考虑什么才算是“名称” 。
grep -E 'photo for [^"]{0,20}"' File | sed 's/photo for \([^"]\{0,20\}\)".*/\1/'
或者更简单:
sed -n 's/photo for \([^"]\{0,20\}\)".*/\1/p' File
答案2
珀尔
cat File | perl -nE'm/^photo for ([^"]+)/ && say $1'
或者
perl -nE'm/^photo for ([^"]+)/ && say $1' File
这会去除前缀photo for
并捕获直到 的所有字符"
。