Kyl*_*ndt 22
sed '5555,7777!d' <filename>
Run Code Online (Sandbox Code Playgroud)
这将打印文件的第 5555-7777 行。
丹尼斯发布了以下我同意应该更快的内容:
sed '5555,7777p; 7778q' filename
以下证据表明它应该更快:
$ 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
Run Code Online (Sandbox Code Playgroud)
仅在 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
Run Code Online (Sandbox Code Playgroud)
Den*_*son 16
完成后退出可以加快速度:
sed -n '5555,7777p; 7778q' input_file
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7418 次 |
| 最近记录: |