Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Grep忽略/未捕获文件的第一行_Linux_Bash_Shell_Grep_Script - Fatal编程技术网

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

Linux Grep忽略/未捕获文件的第一行,linux,bash,shell,grep,script,Linux,Bash,Shell,Grep,Script,我试图编写一个脚本,读取一个文件的所有行,如果grep中包含expecify单词(在本例中,单词是apple),则grep读取一行,但我遇到了一个问题,grep忽略/未捕获文件的第一行 这是我的剧本: #!/bin/bash while read line; do grep 'apple' > fruits2.txt done < fruits.txt 输出文件“fruits2.txt” 因此,您正在创建一个循环,以便逐行读取整个文件,并让grep验证该行中是否

我试图编写一个脚本,读取一个文件的所有行,如果grep中包含expecify单词(在本例中,单词是apple),则grep读取一行,但我遇到了一个问题,grep忽略/未捕获文件的第一行

这是我的剧本:

#!/bin/bash

while read line;
do
    grep 'apple' > fruits2.txt
    
done < fruits.txt
输出文件“fruits2.txt”


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

您认为
grep
只能读取一行是正确的

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

因此,您不需要创建自己的循环,只需执行以下操作:

grep "apple" fruits.txt
结果将是:

apple 1
apple 2
apple 3
apple 4
另外:假设您将“菠萝666”添加到“fruits.txt”文件中,那么您也会在输出中看到这个。如果您不想这样做:

grep -w "apple" fruits.txt

-w
说明只能显示整个单词。)

阅读行
阅读第一行,grep甚至看不到它。只需使用
grep'apple'fruits.txt>fruits2.txt,无需循环。请为问题的示例输入添加所需的输出(无描述、无图像、无链接)(无注释)。
apple 1
apple 2
apple 3
apple 4
grep -w "apple" fruits.txt