如何在bash脚本中读取特殊行的文件

时间:2014-02-18 10:35:27

标签: bash shell

我只是想从bash shell中的文件读取偶数行,怎么做?

另外我只是想读一个文件的第五行,那怎么做?

5 个答案:

答案 0 :(得分:1)

awk 'NR % 2 == 1' <filename>

对于第二个:

awk 'NR == 5' <filename>

您还可以使用sed获取指定范围内的数字:

sed -ne '5,5p' <filename>

答案 1 :(得分:0)

您可以使用tail命令。把它放在第一种情况的for循环中,如果你得到第一种情况,则第二种情况完全无关紧要。

或许你甚至可以使用awk:

awk NR==5 file_name 

答案 2 :(得分:0)

使用gnu-sed读取偶数文件:

sed -n "2~2 p" file

使用sed:

从文件中打印特定的行#
sed '5q;d' file

答案 3 :(得分:0)

试试这个:

例如3到6之间的行

awk 'NR>=3 && NR<=6'`

这些是帮助改善它(但没有完成)

#!/bin/bash                           
test=`cat input.txt | awk 'NR>=3 && NR<=6'`
while read line; do
    #do stuff
done <input.txt

答案 4 :(得分:0)

Awk通常就是答案(或者,现在,Perl,Python等)

如果由于某种原因你必须只使用bash和基本shell实用程序:

cat file | \
while read line; do 
   i=$(( (i + 1) % 2 )) 
   if [[ $i -eq 0 ]]; then 
      echo $line // or whatever else you wanted to do with it
   fi
done

获得特定的一行:

cat file | head -5 | tail -1
相关问题