分享页面
首页  >  

#

  • 在 Linux 中分割和重组文件
    2021-07-09

    非常有用的 csplit 命令可以将单个文件分割成多个文件。Carla Schroder 解释说。

    Linux 有几个用于分割文件的工具程序。那么你为什么要分割文件呢?一个用例是将大文件分割成更小的尺寸,以便它适用于比较小的存储介质,比如 U 盘。当您遇到 FAT32(最大文件大小为 4GB),且您的文件大于此时,通过 U 盘传输文件也是一个很好的技巧。另一个用例是加速网络文件传输,因为小文件的并行传输通常更快。

    我们将学习如何使用 csplitsplit 和 cat 来重新整理文件,然后再将文件合并在一起。这些操作在任何文件类型下都有用:文本、图片、音频文件、ISO 镜像文件等。

    使用 csplit 分割文件

    csplit 是这些有趣的小命令中的一个,它永远伴你左右,一旦开始用它就离不开了。csplit 将单个文件分割成多个文件。这个示例演示了最简单的使用方法,它将文件 foo.txt 分为三个文件,以行号 17 33 作为分割点:

    $ csplit foo.txt 1733
    
    2591
    
    3889
    
    2359

    csplit 在当前目录下创建了三个新文件,并以字节为单位打印出新文件的大小。默认情况下,每个新文件名为 xx_nn

    $ ls
    
    xx00
    
    xx01
    
    xx02

    您可以使用 head 命令查看每个新文件的前十行:

    $ head xx*
    
    ==> xx00 <==
    
    FooFile
    
    by CarlaSchroder
    
    Foo text
    
    Foo subheading
    
    More foo text
    
    ==> xx01 <==
    
    Foo text
    
    Foo subheading
    
    More foo text
    
    ==> xx02 <==
    
    Foo text
    
    Foo subheading
    
    More foo text
    
    

    如果要将文件分割成包含相同行数的多个文件怎么办?可以指定行数,然后将重复次数放在在花括号中。此示例重复分割 4 次,并将剩下的转储到最后一个文件中:

    $ csplit foo.txt 5{4}
    
    57
    
    1488
    
    249
    
    1866
    
    3798

    您可以使用星号通配符来告诉 csplit 尽可能多地重复分割。这听起来很酷,但是如果文件不能等分,则可能会失败(LCTT 译注:低版本的 csplit 不支持此参数):

    $ csplit foo.txt 10{*}
    
    1545
    
    2115
    
    1848
    
    1901
    
    csplit:'10': line number out of range on repetition 4
    
    1430

    默认的行为是删除发生错误时的输出文件。你可以用 -k 选项来解决这个问题,当有错误时,它就不会删除输出文件。另一个行为是每次运行 csplit 时,它将覆盖之前创建的文件,所以你需要使用新的文件名来分别保存它们。使用 --prefix= _prefix_ 来设置一个不同的文件前缀:

    $ csplit -k --prefix=mine foo.txt 5{*}
    
    57
    
    1488
    
    249
    
    1866
    
    993
    
    csplit:'5': line number out of range on repetition 9
    
    437
    
    $ ls
    
    mine00
    
    mine01
    
    mine02
    
    mine03
    
    mine04
    
    mine05

    选项 -n 可用于改变对文件进行编号的数字位数(默认是 2 位):

    $ csplit -n 3--prefix=mine foo.txt 5{4}
    
    57
    
    1488
    
    249
    
    1866
    
    1381
    
    3798
    
    $ ls
    
    mine000
    
    mine001
    
    mine002
    
    mine003
    
    mine004
    
    mine005

    csplit 中的 “c” 是上下文(context)的意思。这意味着你可以根据任意匹配的方式或者巧妙的正则表达式来分割文件。下面的例子将文件分为两部分。第一个文件在包含第一次出现 “fie” 的前一行处结束,第二个文件则以包含 “fie” 的行开头。

    $ csplit foo.txt /fie/

    在每次出现 “fie” 时分割文件:

    $ csplit foo.txt /fie/{*}

    在 “fie” 前五次出现的地方分割文件:

    $ csplit foo.txt /fie/{5}

    仅当内容以包含 “fie” 的行开始时才复制,并且省略前面的所有内容:

    $ csplit myfile %fie%

     

    将文件分割成不同大小

    split 与 csplit 类似。它将文件分割成特定的大小,当您将大文件分割成小的多媒体文件或者使用网络传送时,这就非常棒了。默认的大小为 1000 行:

    $ split foo.mv
    
    $ ls-hl
    
    266KAug2116:58 xaa
    
    267KAug2116:58 xab
    
    315KAug2116:58 xac
    
    [...]

    它们分割出来的大小相似,但你可以指定任何你想要的大小。这个例子中是 20M 字节:

    $ split-b 20M foo.mv

    尺寸单位缩写为 KMGTPEZY1024 的幂)或者 KBMBGB 等等(1000 的幂)。

    为文件名选择你自己的前缀和后缀:

    $ split-a 3--numeric-suffixes=9--additional-suffix=mine foo.mv SB
    
    240KAug2117:44 SB009mine
    
    214KAug2117:44 SB010mine
    
    220KAug2117:44 SB011mine

    -a 选项控制编号的数字位置。--numeric-suffixes 设置编号的开始值。默认前缀为 x,你也可以通过在文件名后输入它来设置一个不同的前缀。

    将分割后的文件合并

    你可能想在某个时候重组你的文件。常用的 cat 命令就用在这里:

    $ cat SB0*> foo2.txt

    示例中的星号通配符将匹配到所有以 SB0 开头的文件,这可能不会得到您想要的结果。您可以使用问号通配符进行更精确的匹配,每个字符使用一个问号:

    $ cat SB0??????> foo2.txt

    和往常一样,请查阅相关的手册和信息页面以获取完整的命令选项。

  • 四川云服务器租用_四川服务器托管_四川代理IP_四川拨号VPS
    2021-05-10

    云服务器作为云计算典型应用之一,凭借高性能、低成本、易维护、快速部署、灵活扩展等优势,快速取代传统物理主机和服务器托管模式,成为市场主流。当前,考虑购买云服务器的企业,已经不仅仅是中小企业和草根站长,越来越多的大型企业,开始考虑使用云服务器。

    云服务器的作用其实有很多,例如我们上面说到的搭建网站,APP,小程序等,但这些都是他众多作用中的一点而已,云服务器的作用远远不止这些。例如我们还可以在云服务器上面运行数据库,在云服务器上存储数据,甚至把云服务器真的当成一台电脑来使用,而且这台电脑不像我们家里的电脑,他可以24小时运行着,我们可以在上面挂各种大中小或超大型程序、平台等等。

    四川云服务器租用托管_四川代理IP_四川拨号VPS

    选择代理ip后可以访问更多在线内容,用于注册、增加访问、投票等补量及运用在爬虫领域,优质高匿的代理Ip不会被识别出来,能够很好的确保用户的真正隐私。青果网络代理ip支持多种协议,动态静态可选,根据使用情况选择计费方式。青果网络是高效多云管理服务商,同市面上各大品牌携手合作,业务范围有阿里云、腾讯云、华为云、电信云等,全国乃至海外主要地区云服务器租用、托管。企业多年专业运营管理经验获得广大客户信赖好评,是少有工信部颁发的全网IDC/ISP/IP-VPN资质企业之一。

  • Centos如何移动文件夹
    2021-07-10

    Centos系统如何移动文件夹?本教程以Centos7系统为例

    本配置适用于centos6centos7版本

    1.先用cd /命令回到根目录,然后使用

    sudo mkdir myDir

    命令创建一个文件夹作为等会要移动的目录。

    2.接着使用

    sudo touch test.txt

    命令创建一个要移动的文件。

    3.我这里是使用复制的方式来移动文件。需要使用到cp命令。如图,我使用命令

    sudo cp test.txt /myDir/test.txt

    test.txt复制一份到myDir目录下。

    4.复制完后,进入myDir目录查看,可以看到myDir目录下多了一个test.txt文件。

    5.如果在复制的过程中想顺便修改文件名。可以使用命令

    sudo cp test.txt /myDir/test2.txt

    这条命令就是将test.txt文件复制到myDir文件夹下,并修改文件名为test2.txt

    6.复制完后,再次进入myDir目录。查看myDir下文件,可以看到,myDir下多了一个test2.txt文件。

     

     

     

     

     

     

     

     

     

  • Debian8系统如何用time命令统计某命令运行所花费的时间
    2021-07-20

    debian8系统如何用time命令统计某命令运行所花费的时间?本教程以debian8系统为例

    本配置适用于debian89版本

    1.介绍

    time命令用于统计给定命令所花费的总时间。

    2.实例

    当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短的。所有类UNIX系统都包含time命令,使用这个命令可以统计时间消耗。例如: 

    [root@localhost ~]# time ls

    输出的信息分别显示了该命令所花费的real时间、user时间和sys时间。 

    real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。 

    user时间是指进程花费在用户模式中的CPU时间,这是唯一真正用于执行进程所花费的时间,其他进程和花费阻塞状态中的时间没有计算在内。 

    sys时间是指花费在内核模式中的CPU时间,代表在内核中执系统调用所花费的时间,这也是真正由进程使用的CPU时间。 

  • Debian8系统如何通过快捷键快速搜索历史命令
    2021-07-16

    debian8系统如何通过快捷键快速搜索历史命令?本教程以debian8系统为例

    本配置适用于debian89版本

    linux命令行的history是一个熟知但不常用的命令,原因是要查某个命令的编号需要输入 history|grep xxx ,又因为|grep xxx 属于运行即执行也不方便,ctrl r则方便多了。
    ctrl r
    用途:反向搜索执行过的命令。(reverse-i-search)

    1.进入系统后

    2.按住键盘Ctrl R,会变化成如下图

    3.输入history如上图 我们需要txt这个命令按住↑搜索速度比较慢

    4.可以Ctrl r快速搜索就方便多了

  • 关于云电脑-中国香港和泉州联通线路调价通知
    2021-09-15

    尊敬的青果用户:

    由于以下产品成本变化幅度较大,现经研究对价格做出调整,该价格调整方案将于2021年9月22日起实施,方案如下:

    1.云电脑-中国香港,基础价格下调50元/月,如最低配(1H1G)从189元/月调整为139元/月;
    2.云电脑-泉州联通,基础价格上调10元/月,如最低配(1H1G)从59元/月调整为69元/月;

    本次调整过后,新购与续费时将按照调整后的资费进行计算。
    关于此次调价,如有任何疑问,请随时联系官方客服QQ:4006782553。

  • Debian8系统如何用sort命令对文件内容进行排序
    2021-07-20

    debian8系统如何用sort命令对文件内容进行排序?本教程以debian8系统为例

    本配置适用于debian89版本

    1.介绍

    sort命令作用

    sort命令用于将文本文件内容加以排序,将输入行按照键值字段与数据类型选项以及locale排序。

    一个可预期的记录次序,会让用户的查看使用更方便:书的索引、字典、目录以及电话簿等,如果没有次序依据就毫无价值,排序后的记录更易于程序化,也更有效率。

    2.参数

    -b 忽略开头的空白
    
    -c 检查输入是否已正确的排序。如果输入未经排序,返回退出码非零值
    
    -d 字典顺序:仅文字数字与空白才有意义
    
    -g 一般数值:以浮点数字类型比较字段。
    
    -f 将混用的字母都看作相同大小写,不区分大小写
    
    -i 忽略无法打印的字符
    
    -k 定义排序键值字段
    
    -m 将几个排序好的文件进行合并。
    
    -M 将前面3个字母依照月份的缩写进行排序。
    
    -n 依照数值的大小排序。
    
    -o<输出文件> 将排序后的结果存入指定的文件。
    
    -r 以相反的顺序来排序。
    
    -t<分隔字符> 指定排序时所用的栏位分隔字符。
    
     <起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
    
    --help 显示帮助。
    
    --version 显示版本信息。

    3.sort案例

    3.1以字段排序

    3.1.1以冒号隔开的第一个字段:用户名称进行排序

    sort -t: -k1,1 /etc/passwd

    3.1.2以冒号隔开,先以第四段进行排序,然后以第三段进行排序,展示出来(1开始计数)

    sort -t: -k4n -k3n /etc/passwd
    
    

  • Mac系统如何刷新DNS缓存
    2023-11-09

    1.打开终端 ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-11-09/10122733c28c5.jpeg) 2.输入该命令按回车键即可:`sudo dscacheutil -flushcache` ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-11-09/1012282d46265.jpeg)

  • Centos7.6如何查看已安装的软件
    2023-11-14

    1.使用该命令可查看系统安装的软件个数:`rpm -qa | wc -l` ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-11-14/153129e7da4b9.jpg) 2.使用该命令可查看系统安装的软件列表:`rpm -qa | sort` ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-11-14/1531292562455.jpg)

  • Centos7系统如何使用yum命令安装python
    2021-07-14

     

    Centos7系统如何使用yum命令安装python?本教程以Centos7系统为例

    本配置适用于Centos67版本

    1.检查本机是否有存在python

    yum list installed | grep python

    2.如果不存在则运行

    yum install python -y

    3.在终端输入python进入

    退出按Ctrl d

热门标签

4008765417
扫码关注公众号