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