sed '5555,7777!d'
这将打印包含文件的行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