繁体   English   中英

“ $ line”和“ ^ $ line”有什么区别

[英]What is the difference between “$line” and “^$line”

有一段时间的读取循环:

while read line; do
    grep "^$line" file1
done < target

我应该使用"^$line"来获得正确的答案。 我想知道"$line""^$line"什么区别?

while循环在这里grep ,是grep命令使^有意义。 ^字符是正则表达式中的标识符。 它与行的开头匹配,因此grep "$line" file$line是子字符串的grep "$line" file中的任何行匹配,而grep "^$line"仅与以$line开头的$line匹配。

@sudo_O为您的问题提供了正确的答案。 但是,您可以完全省略循环:

grep -f target file1

只需调用grep即可更高效。 如果您需要线锚:

grep -f <(sed 's/^/^/' target) file1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM