Grep忽略/未捕获文件的第一行



我正在尝试编写一个脚本,读取文件的所有行,并对grep中包含expecfy单词的行进行grep(在这种情况下,单词是apple(,但我遇到了一个问题,即grep忽略/未捕获文件的第一行。

这是我的脚本:

#!/bin/bash
while read line;
do
grep 'apple' > fruits2.txt

done < fruits.txt

输入文件";fruits.txt";

apple 1
banana
apple 2
grape
orange
apple 3
blueberry
apple 4

输出文件";fruits2.txt";

apple 2
apple 3
apple 4

因此,您正在创建一个循环,以便逐行读取整个文件,并让grep验证该行中是否有内容。

grep只能读取一行,这是正确的。

但是:grep可以读取整个文件,这就是创建的目的。

所以,你不需要创建自己的循环,你只需要做:

grep "apple" fruits.txt

结果将是:

apple 1
apple 2
apple 3
apple 4

作为一个额外的:想象一下,你加上";菠萝666";到您的";fruits.txt";文件,那么您也会在输出中看到这个。如果你不想这样:

grep -w "apple" fruits.txt

(-w表示只能显示整个单词。(

相关内容

  • 没有找到相关文章

最新更新