我有一个包含多行的文件
我想grep行包含一个使用变量的字符串,这个字符串就是这样的:
/wp-admin/admin-ajax.php
我想grep只有行包含精确的uri:
/wp-admin/admin-ajax.php
并且不要提取这样的行:
/wp-admin/admin-ajax.php?blahblah
示例文件:
4.2.2.4 sitename.com/wp-admin/admin-ajax.php
4.2.2.4 sitename.com/wp-admin/admin-ajax.php?
4.2.2.4 sitename.com/wp-admin/admin-ajax.php?blah
4.2.2.4 sitename.com/wp-admin/admin-ajax.php?blahblah
搜索主题:
sitename.com/wp-admin/admin-ajax.php
应该提取这样的行:
4.2.2.4 sitename.com/wp-admin/admin-ajax.php
答案 0 :(得分:1)
将-F
选项添加到grep,告诉它使用字符串而不是正则表达式和-x
来整行:
grep -x -F "$variable"
请参阅手册页。
鉴于您更新的问题:
$ awk -v tgt='sitename.com/wp-admin/admin-ajax.php' '$NF==tgt' file
4.2.2.4 sitename.com/wp-admin/admin-ajax.php
答案 1 :(得分:0)
这个怎么样:
awk 'NR==FNR{a[$0]; next} $1 in a' pattern.txt data_file.txt
假设您将数据保存在data_file.txt
中:
www.sitename.com/admin/index.php
www.sitename.com/admin
www.sitename.com/
...
您希望在其他文件中识别的内容,例如pattern.txt
喜欢:
www.sitename.com/admin