grep 行在文件中包含确切的字符串
grep lines contain exact string in a file
我有一个包含很多行的文件
我想 grep 行包含一个使用变量的字符串,该字符串是一个 uri,如:
/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
这个怎么样:
awk 'NR==FNR{a[[=10=]]; next} 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
向 grep 添加 -F
选项以告诉它使用字符串而不是正则表达式和 -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
我有一个包含很多行的文件
我想 grep 行包含一个使用变量的字符串,该字符串是一个 uri,如:
/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
这个怎么样:
awk 'NR==FNR{a[[=10=]]; next} 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
向 grep 添加 -F
选项以告诉它使用字符串而不是正则表达式和 -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