解决方法
sed '5555,7777!d' <filename>
这将打印包含文件的行5555-7777.
丹尼斯发表以下内容我同意应该更快:
sed’5555,7777p; 7778q’文件名
以下证据表明它应该更快:
$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
仅在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