简体   繁体   English

在 Bash 中提取单词后的字符串文本

[英]Extract the text of string after a word in Bash

How can I extract the text after a word like Modeline .如何在Modeline类的单词之后提取文本。

I have a 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

ie a typical output of cvt command and I want to get the text after "Modeline".cvt命令的典型输出,我想在“Modeline”之后获取文本。

other variations其他变体

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

or或者

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

Using bash parameter-expansion,使用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

With sed, using backreference:使用 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM