2017-02-05 3 views
0

Wie kann ich den Text nach einem Wort wie Modeline extrahieren.Extrahieren Sie den Text der Zeichenfolge nach einem Wort in Bash

ich eine Zeichenfolge haben,

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 

d.h einer typischen Leistung von cvt Befehl, und ich möchte den Text nach „Modeline“ erhalten.

Antwort

1

Mit Sed unter Verwendung Rückreferenzierung:

$ 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 
1

Mit bash Parameter-Expansion,

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 
1

andere Variationen

$ awk -F'Modeline ' '{print $2}' file 

oder

$ sed 's/.*Modeline //' file 
Verwandte Themen