我只是想从bash shell中的文件读取偶数行,怎么做?
另外我只是想读一个文件的第五行,那怎么做?
答案 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