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

标签 regex linux sed awk

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

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

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

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

感谢您的帮助

最佳答案

I want a regex that will get everything after TXT and only display that up until the ;

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

使用awk:

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

使用sed:

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

关于regex - sed 或 awk 正则表达式,在分号后停止匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19724388/

相关文章:

c - 消息队列 : msgsnd failed : Invalid argument

linux - 如何使用 sed 只提取日期?

linux - 使用 awk 搜索多个条件字符串

python - 替换字符串中的货币值时,Python 中的 re.sub() 并不总是有效

regex - 在 XSD 文件中,模式 [ !-~]* 实际检查什么?

javascript - 正则表达式匹配空格后不跟特定单词

shell - 在 Solaris 上替代 `sed -i`

c# - 如何编写正则表达式来在 C# 中查找和替换(Unicode/本地化)

linux - Fedora 19 根凭证是什么?

java - 我如何告诉 Java 代码以普通用户身份从命令行运行脚本时运行脚本?