【发布时间】:2015-05-16 21:16:47
【问题描述】:
我需要对 txt 文件进行 grep,例如这是文件
[Hey my][aaaaaaa]
bla bla bla
bla bla
我想要第一行出现“Hey my”字样的地方
这是我的代码:
grep "Hey my" file.txt | head -n 1
但这将给出所有第一行,我只需要第一个方括号
我是怎么做到的..?
【问题讨论】:
-
你还需要方括号吗?
我需要对 txt 文件进行 grep,例如这是文件
[Hey my][aaaaaaa]
bla bla bla
bla bla
我想要第一行出现“Hey my”字样的地方
这是我的代码:
grep "Hey my" file.txt | head -n 1
但这将给出所有第一行,我只需要第一个方括号
我是怎么做到的..?
【问题讨论】:
使用cut:
grep "Hey my" test | cut -d[ -f1-2
这几乎适用于任何 Unix(Mac OS、BSD)或 Linux。
【讨论】:
您可能想查看带有 GNU grep 的 -o 标志。它将仅显示匹配的行部分。此外,-m 将在一定数量的匹配后停止,因此您可以执行这 2 个命令
grep -m 1 -o "Hey my" file.txt
结果只会给你“嘿,我的”。
如果你也想要括号,因为括号定义了正则表达式中的字符类,你可能想添加-F 标志来告诉grep 不要像使用正则表达式
grep -m1 -oF "[Hey my]" file.txt
【讨论】: