linux – 从文件中读取指定的行范围

前端之家收集整理的这篇文章主要介绍了linux – 从文件中读取指定的行范围前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有包含100000行的文件
我如何从 linux#5555行到#7777行. @H_404_3@谢谢大家.

解决方法

sed '5555,7777!d' <filename>
@H_404_3@这将打印包含文件的行5555-7777.

@H_404_3@丹尼斯发表以下内容我同意应该更快:

@H_404_3@sed’5555,7777p; 7778q’文件

@H_404_3@以下证据表明它应该更快:

$n=1
$while [[ n -le 100000 ]]; do echo $n >> sedtest2; n=$((n + 1)); done
$strace -e trace=read -o sed1 sed '5555,7777!d' sedtest2
$strace -e trace=read -o sed2 sed '5555,7777p; 7778q' sedtest2
$wc -l sed1
149 sed1
$wc -l sed2
14 sed1
@H_404_3@仅在Bash中(为了好玩):

n=1
while read line; do 
    if [[ ($n -ge 5555) && ($n -le 7777)  ]]; then 
        echo $line
    elif [[ $n -gt 7777 ]]; then
        break
    fi 
    n=$(( $n + 1 ))
done < file

猜你在找的Linux相关文章