微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

显示在给定字符处停止每一行的文本文件

如何解决显示在给定字符处停止每一行的文本文件

我有一个包含法语单词的文本文件,这是一个例子:

hackeur -euse (n.m/f.)
huppe (n. f.) 
huque (n. f.) 
hure (n. f.)

我想显示文件,当检测到模式 ( 时停止每一行。预期输出为:

hackeur -euse
huppe
huque
hure

我想用命令行来做这件事。可行吗?

解决方法

使用 awk 作为字段分隔符的一个 ( 想法:

$ awk -F' [(]' '{print $1}' french.dat
hackeur -euse
huppe
huque
hure

一些更简单的想法......

cut

$ cut -d'(' -f1 french.dat
hackeur -euse
huppe
huque
hure

注意:这将留下一个尾随空白,可以通过其他命令(例如,sed)修剪掉

sed 和一个捕获组:

$ sed -En 's/^(.*) \(.*/\1/p' french.dat
hackeur -euse
huppe
huque
hure

注意:这里假设 (

出现一次 ,

这里是一个基于 GNU grep 的解决方案

grep -Po '^.*?(?= \()' inputfile
,

如果需要 awk(match()

substr()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。