我希望使用awk获取所有以特定字符串开头的行。
我使用以下代码:
awk -v string="$string" '$0 ~ " "string {
如果$ string = abc ,它将获得具有空间 abc 空间的所有行 这意味着 abcd 这个词不符合条件
但是我想为那些正在乞讨的话语做这件事。
意味着" "string
不会起作用。
所以我需要表示一行开头的字符/字符序列
答案 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'