Linux Grep忽略/未捕获文件的第一行
我试图编写一个脚本,读取一个文件的所有行,如果grep中包含expecify单词(在本例中,单词是apple),则grep读取一行,但我遇到了一个问题,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验证该行中是否
#!/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