sed或awk正则表达式,分号后停止匹配

时间:2013-11-01 09:54:01

标签: regex linux sed awk

我在文件中有多个字符串,看起来像这样

TXT 20131101 094502,20131101 094502,Fri Nov  1 09:45:02 UTC 2013;

我想要一个正则表达式,它将在TXT之后获得所有内容并且只显示直到;使用sed或awk

我尝试了很多方法,但似乎无法让它停在;

感谢您的帮助

2 个答案:

答案 0 :(得分:6)

  

我想要一个正则表达式,它将在TXT之后获得所有内容并且仅显示   直到;

grep -oP 'TXT[^;]*' filename

使用awk

awk -F';' '{print $1}' filename

使用sed

sed 's/\([^;]*\).*/\1/' filename

答案 1 :(得分:0)

 sed "s/TXT\([^;]*\);.*/\1/"
TXT之间的

(如果有的话,也是第一个空格)和第一个; (不包括在内)

devnull的回复包括输出中的“TXT”