如何在Modeline
之后的单词之后提取文字。
我有一个字符串,
mdline = 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
,即cvt
命令的典型输出,我想在“Modeline”之后获取文本。
答案 0 :(得分:2)
其他变体
$ awk -F'Modeline ' '{print $2}' file
或
$ sed 's/.*Modeline //' file
答案 1 :(得分:1)
使用sed,使用反向引用:
$ sed 's/.*Modeline\(.*\)/\1/' <<< 'mdline = 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync'
"1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
答案 2 :(得分:1)
使用bash
参数扩展
string='mdline = 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync'
printf "%s\n" "${string#*Modeline }"
"1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync