加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 18:32:44 所属栏目:Linux 来源:网络整理
导读:我有包含100000行的文件 我如何从 linux#5555行到#7777行. 谢谢大家. 解决方法 sed '5555,7777!d' filename 这将打印包含文件的行5555-7777. 丹尼斯发表以下内容我同意应该更快: sed’5555,7777p; 7778q’文件名 以下证据表明它应该更快: $n=1$while [[ n
我有包含100000行的文件
我如何从 linux#5555行到#7777行.

谢谢大家.

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读