首页 > 系统相关 > 管理文件和目录6(Ubuntu)

管理文件和目录6(Ubuntu)

时间:2023-08-19 22:01:07浏览次数:42  
标签:选项 文件 字符 管理文件 命令 Ubuntu 所示 目录 表达式

一:对文件内容进行排序

  sort这个命令可以对正文内容进行排序,还会将结果输出到标准输出中,而且原始文件中的内容不会发生任何改变。默认情况下,这个命令可以让内容按升序进行排序。如果有多个输入文件,那么每个文件中的内容都将重新排列并连续输出。

  格式:  sort [选项] 文件名

下面是sort命令的几个选项,如下表所示:

选项

说明

-n

按数字的大小进行排序

-b

忽略每行开始处的空白

-f

排序时不区分大小写

-r

降序排序

-u

排除重复的行

 以/bin目录下的apg文件为例使用sort排序。不加任何选项时,表示对文件内容进行升序排序,执行sort -fr apg时,表示降序排列文件内容并且不区分大小写字母,演示如下图所示:

                                                     管理文件和目录6(Ubuntu)_文件名

                                                     管理文件和目录6(Ubuntu)_字符串_02

二:转换文件内容的格式

tr命令可以将标准输出的字符串换为指定的格式,然后显示出来。

格式: tr [选项] 字符组1 [字符组2]

tr命令的基本选项如下表所示:

选项

说明

-d

删除匹配的字符

-s

多于重复的字符只保留一个

-t

删除字符组1里多出的字符(与字符组2相比)

演示如下图所示:

                                                     管理文件和目录6(Ubuntu)_文件名_03

  上述第一个命令tr  'a-z' 'A-Z'命令表示把输入的字符从小写转换为大写,如果想结束输入,可以使用 ctrl + d键即可。

  第二条命令: tr -d 'in'表示删除输入的内容中含有i和n这两个字符的文本内容,注意ie是两个字符而不是字符串ie。

三:删除文件相同重复的行

  如果想要删除文件里面相邻重复的行,可以使用uniq命令.这个命令可以从文件中读取内容,删除相邻重复的行,输出的结果不会改变原文件里面的内容。

格式如下: uniq [选项] 文件名

uniq常用的选项如下表所示:

选项

说明

-c

在每行之前显示出现的次数

-d

只输出重复的行

-u

只显示出现一次的行

下面我给大家以我创建的file1文件为为例演示截图如下:

                                                     管理文件和目录6(Ubuntu)_文件名_04

 

                                                     管理文件和目录6(Ubuntu)_字符串_05

这个文件里面有行内容,其中5行和6行失宠的内容,执行uniq fiel1后,可以发现删掉了一行重复的内容。

如果在加上-c选项,就可以看到重复出现的次数了,如下图所示:

                                                     管理文件和目录6(Ubuntu)_删除文件_06

三:将文件里的制表符换成空格

 这个命令就是expand命令。如果想把输出结果存入文件里,可以使用重定向。

格式:expand [选项] 文件名

  expand命令常用的选项是-t,它可以指定空白字符替代制表符的格式。想看文件里的制表符组合可以使用cat -T命令,文件里^l就是Linux中的制表符。默认情况下,制表符替换为半角空格,默认空白字符的个数为8.

如果想要指定文件中要对齐的空白字符数,则要使用-t。

四:替换、新增、删除等操作

  这个命令就是sed,是很全能的命令,而且用法也是千变万化的。sed对文件的操作只会显示在输出结果中,不会改变原文件中的内容。

 格式: sed [选项] [表达式] [文件名]

  sed命令中的表达式需要使用引号括起来。虽然表达式千变万化,但是首先掌握常用的表达式用法总是没错的,如下表所示:

表达式

说明

s/旧模式/新模式/

对于每一行,都将与旧模式匹配的第一个字符串转换为新模式

s/旧模式/新模式/g

将于旧模式匹配的全部字符串转换为新模式

s/$/字符串/

在每行文件末尾添加字符串

/^$/d

删除文件中的空白行

我要使用sed命令替换文件fiel2中的user字符串,可以这样书写表达式:'s/user/c++',不过这个表达式只会替换文件中每行第一个符合表达式的字符串,如下图所示:

                                                     管理文件和目录6(Ubuntu)_字符串_07

  如果想要替换文件中所有符合表达式的字符串,可以使用’s/user/c++/g‘表达式,如下图所示:

                                                     管理文件和目录6(Ubuntu)_删除文件_08

  sed命令的删除功能也很有意思,不同的组合可以删除的范围也不同。如果想要删除fiel2文件中的第2行,可以在d的前面加一个数字2,如下图所示:

                                                     管理文件和目录6(Ubuntu)_文件名_09

如果想删除的内容不止一行,表达式可以灵活的变为:’3,4d‘其中的3和4表示第3行到第4行,如下图所示:如果想删除指定文件中的内容,使用这个方法还是比较方便的,尤其是大文件。




标签:选项,文件,字符,管理文件,命令,Ubuntu,所示,目录,表达式
From: https://blog.51cto.com/u_15912723/7152542

相关文章

  • Ubuntu更改时区
     查看当前分区timedatectl修改时区,输入如一命令sudotimedatectlset-timezoneYOUR_TIMEZONE例如,如果您要将时区设置为"Asia/Shanghai",则命令将如下所示:sudotimedatectlset-timezoneAsia/Shanghai   参考:https://blog.csdn.net/kaka_buka/article/d......
  • 在 Ubuntu 22.04 系统上为 SSH 开启基于时间的 TOTP 认证
    前言一次性密码(英语:one-timepassword,简称OTP),又称动态密码或单次有效密码,是指电脑系统或其他数字设备上只能使用一次的密码,有效期为只有一次登录会话或一段短时间内。基于时间的一次性密码算法(英语:Time-basedOne-TimePassword,简称:TOTP)是一种根据预共享的密钥与当前时间计算一次......
  • 记一次Ubuntu修改密码的乌龙事件
    虚拟机装的Ubuntu系统忘记密码,按网上的教程修改之后,用ssh远程连接总是连不进去,尝试了各种办法都无效果。后来发现,在虚拟机的登录有时候也不行。忽然想起设置密码的时候用的是小键盘,会不会因为当时数字键没按下,输入的是乱码而不是数字。于是用键盘第二排的数字键重设了密码,故障解......
  • ubuntu与windows双系统时间同步
    windows认为,BIOS时间就是当地时间。所以windows会直接显示BIOS时间。ubuntu认为,BIOS时间应当是UTC时间(格林尼治标准时间)。所以ubuntu会将BIOS时间加8小时后再显示出来(中国,UTC+8)。解决方案是,在ubuntu终端中输入:sudotimedatectlset-local-rtc1这句话的作用是让ubuntu将系统......
  • Web目录扫描工具汇总
    在肾透中,我们需要得到网站web服务器的路劲。如管理员后台,站点的敏感文件如(站点备份、数据库备份)等等。在kali中有很多这样的优秀工具,本文将为你一一介绍。01GobusterGobuster是一个开源工具,主要用于网站目录扫描和子域名收集。安装也很简单,只需执行下面命令即可!apt-getinstall......
  • ubuntu18更换内核,安装n卡驱动
     换腾讯源 sudoadd-apt-repositoryppa:graphics-drivers/ppasudodpkg-ilinux-*.debreboot ubuntu-driversdevicessudoapt-getinstallnvidia-driver-470......
  • 「Temp」目录
    Temp\(\color{magenta}{To\Do\List}\)\(\color{magenta}{代码模板}\)吃吃吃\(\color{orange}{Eon\今天吃什么}\)题解\(\color{green}{P3140}\)\(\color{green}{CF855E}\)\(\color{green}{CF848C}\)\(\color{green}{CF1491H}\)\(\color{green}{S......
  • 软件测试|使用 VMware 安装 Ubuntu 虚拟机的详细教程
    简介在日常工作中,我们有时候会遇到需要在Linux系统中部署环境,但是申请服务器资源的时效性又不高,很多时候就需要我们自己在电脑中有一套Linux的环境,但是如何在Windows电脑中部署Linux系统呢?很多时候,在电脑中创建一个虚拟机是我们的首选,在本教程中,我们将介绍如何使用VMware虚拟化软......
  • 文件和目录的基本操作
    创建文件cat命令concatenate(连接)的缩写,即combinepiecestogether1)把碎片组合在一起(意味着可以使用cat创建一个小文件)2)显示文件──(root㉿kali)-[~]└─#cat/etc/resolv.conf#GeneratedbyNetworkManagersearchlocaldomainnameserver192.168.56.2┌──(ro......
  • Node.js 获取项目根目录的几种方法
    module.filename:开发期间,该行代码所在的文件。__filename:表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。如果在模块中,返回的值是模块文件的路径。始终等于module.filename。__dirname:当前执行脚本文件所在的目录......