启动了表示新行的Unix字符

时间:2014-05-12 15:34:57

标签: regex unix awk

我希望使用awk获取所有以特定字符串开头的行。


我使用以下代码:
awk -v string="$string" '$0 ~ " "string {

如果$ string = abc ,它将获得具有空间 abc 空间的所有行 这意味着 abcd 这个词不符合条件

但是我想为那些正在乞讨的话语做这件事。 意味着" "string不会起作用。
所以我需要表示一行开头的字符/字符序列

2 个答案:

答案 0 :(得分:3)

您可以使用行开始锚^

awk -v string="$string" '$0 ~ "^"string {

答案 1 :(得分:2)

这听起来像是grep的工作:

grep "^$string"

但要注意,这个grep和发布的awk解决方案都没有找到字符串,他们正在寻找正则表达式。

要查找行开头,请使用您需要的字符串:

awk -v string="$string" 'index($0,string) == 1'

或者如果你想让字符串被空格包围,只需:

awk -v string="$string" '$1 == string'