显示文本文件,将每一行停在给定字符处



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

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,如果需要each line when the pattern ,您可以使用match()substr()函数( is detected

awk 'match($0, /[(]/) {print substr($0, 1,RSTART-1)}' file
hackeur -euse
huppe
huque
hure

相关内容

  • 没有找到相关文章

最新更新