如何仅在第一个实例的字符串之间提取文本。
来源:
test66="keyword1"y67h6y7 test66="keyword2"hj67h67j
test66="keyword3"f54fd543f456
输出:
keyword1
答案 0 :(得分:1)
sed -n '/test66="\(.*\)"/ {s//\1/p; q}' source.txt
答案 1 :(得分:1)
grep -m 1 -oP 'test66="\K[^"]*'
输出:
keyword1
答案 2 :(得分:0)
awk '{x=match($0,/test66="([^"]+)"/,a)}x{print a[1];exit}' file
sed way
sed -n '/test66="\([^"]\+\)".*/{s//\1/p;q}' file
他们两者完全相同。
1.搜索字符串
2.存在引号之间的值。
3.打印该值
4.Quit
答案 3 :(得分:0)
这可能适合你(GNU sed):
sed -r '/test66="/{s//\n/;s/^[^\n]*\n([^"]*)".*/\1/;q}' file
用标记\n
替换所需的图案,并删除标记两侧的字符串,打印并退出。