假设我有这些数据:
hi helo tmp#100000 bye
100000 hi bye
hi 100000 bye
100000 在变量中:$var 我只想 grep 100000 作为一个完整的单词,所需的输出:
100000 hi bye
hi 100000 bye
我已经尝试了所有在 StuckOverflow 中得到解答的东西,但似乎没有任何效果:
grep "\b$var\b", grep -E "[[:blank:]]$var[[:blank:]]"
等等。
我认为问题可能出在 #
中。
该解决方案需要适用于变量等于: hi.*bye
作为正则表达式的情况。
请帮忙
最佳答案
使用 awk
的非正则表达式搜索:
awk -v var="$var" '
{for (i=1; i<=NF; ++i) if ($i == var) {print; break}}' file
100000 hi bye
hi 100000 bye
否则使用自定义 FS
的 awk 更短:
awk -F "(^|[[:blank:]])$var([[:blank:]]|$)" 'NF > 1' file
关于regex - 在 bash 中用空格分隔一个完整的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64249030/