linux文件查看/筛选/取列/排序/替换/查重 您所在的位置:网站首页 linux获取文件行数命令 linux文件查看/筛选/取列/排序/替换/查重

linux文件查看/筛选/取列/排序/替换/查重

2023-07-18 09:34| 来源: 网络整理| 查看: 265

学习记录Day03

今日份命令 1.查看 1.1 head

此命令查看文件头,默认为查看前10行 可指定要查看的文件行数,加-数字即可 例:

[root@node etc]# head -3 passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin 1.2 tail

此命令为查看文件末,默认为最后10行 可指定要查看的行数,且可动态查看(-f),动态查看可用于监控,例如在监控访问记录文件时,会实时刷新记录。 例:

[root@node etc]# tail -3 passwd sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin [root@node etc]#

在这里插入图片描述 可以看到末尾为光标,且可实时刷新所监控的文件记录

2.下载 2.1 wget

用于下载文件,在win下下载文件时,是由win自动弹窗引导下载,但在linux上下载需要明确的下载地址用于下载文件。 基础安装时是不含有wget的,下载wget可执行以下命令来进行安装

[root@node etc]# yum install wget -y

而使用wget下载文件可以使用-O来指定下载路径和重命名文件名 例:

[root@node etc]# wget -O /usr/local/星空.jpg https://pic3.zhimg.com/v2-e7f9f644d785274a88267ad8d0b39a77_r.jpg?source=1940ef5c

上面的网址是找的一个图片的链接,-O用于指定路径,不能直接放于目录下须重命名,若直接wget下载,则直接保存至当前目录下,且使用原有文件名。

在这里插入图片描述

2.2 sz/rz

此命令用于和win互传, rz:从win上传至linux sz:从linux下载至win

3.命令查询 3.1 which

从环境变量PATH中查询命令所在路径,默认显示查询到的所有路径,加-a只显示单挑路径

[root@confusedowlet ~]# which ls alias ls='ls --color=auto' /usr/bin/ls 3.2 whereis

用来寻找特定的文件,如二进制文件,源文件,帮助手册等

[root@confusedowlet ~]# whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz 4.文本内容管理 4.1 grep(过滤)

-E: 匹配多个条件(条件1/条件2,只要满足一个就会输出结果)

[root@confusedowlet ~]# cat /var/local/222.txt a d a c a e a q [root@confusedowlet ~]# grep -E "c|d" /var/local/222.txt a d a c

-v: 取反

[root@confusedowlet ~]# grep -v "c" /var/local/222.txt a d a e a q

-o:提取关键字

[root@confusedowlet ~]# grep -o "c" /var/local/222.txt c

-i: 忽略大小写

[root@confusedowlet ~]# grep -i "Q" /var/local/222.txt a q 4.2 awk(取列)

-F:指定分隔符(默认空格为分隔符) ‘{print $n}’: 提取其中的某列

[root@confusedowlet ~]# cat /var/local/222.txt a : d a : c a : e a : q [root@confusedowlet ~]# awk -F: '{print $2}' /var/local/222.txt d c e q 4.3 sed(替换)

‘s#旧#新#g’: 替换

[root@confusedowlet ~]# cat /var/local/222.txt a : d a : c a : e a : q [root@confusedowlet ~]# sed 's#a#g#g' /var/local/222.txt g : d g : c g : e g : q

-r:匹配 匹配内容相同的行,根据命令指定的块,打印出来,且可在输出的块前加任何字符,或调换位置,(.*代表多个任意字符,但后续的()是下一个匹配条件,因此.*的作用在此停止。)

[root@confusedowlet ~]# cat /var/local/222.txt a : d a : c a : e a : q [root@confusedowlet ~]# sed -r 's#(a).*(d)#\2\1#g' /var/local/222.txt da a : c a : e a : q 4.4 sort/uniq(排序/去重)

sort用于排序,uniq用于去除重复内容,但,在去重时需要数据是有序的,否则去重统计的内容将不全面。 sort -k:以指定的列排序 以第二列排序

[root@confusedowlet local]# cat student.txt xiaohong 100 xiaoming 73 xiaozhang 90 xiaoli 88 [root@confusedowlet local]# sort -k2 student.txt xiaohong 100 xiaoming 73 xiaoli 88 xiaozhang 90

-n:以数字的形式排序(从小到大)

[root@confusedowlet local]# sort -n -k2 student.txt xiaoming 73 xiaoli 88 xiaozhang 90 xiaohong 100

-r: 倒叙(从大到小)

[root@confusedowlet local]# sort -nr -k2 student.txt xiaohong 100 xiaozhang 90 xiaoli 88 xiaoming 73

-t: 指定分隔符 # 这里以":"为分隔符,取第四列为排列依据,按数字形式排列

[root@confusedowlet local]# head -2 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@confusedowlet local]# head -2 /etc/passwd | sort -t':' -k4 -n halt:x:7:0:halt:/sbin:/sbin/halt operator:x:11:0:operator:/root:/sbin/nologin

uniq -c:统计重复的结果 统计重复的结果,需对内容进行排序,才能统计,否则容易得到错误的结果!

[root@confusedowlet local]# cat student.txt xiaohong 11 xiaoming 100 xiaozhang 88 xiaohong 11 [root@confusedowlet local]# sort -n -k2 /var/local/student.txt | uniq -c 2 xiaohong 11 1 xiaozhang 88 1 xiaoming 100 4.5 wc(统计)

-l: 统计行数(在筛选完需要的内容后可用此命令去统计行数)

[root@confusedowlet ~]# sed 's#a#g#g' /var/local/222.txt g : d g : c g : e g : q [root@confusedowlet ~]# sed 's#a#g#g' /var/local/222.txt | wc -l 4 5.部分常用特殊字符

5.1 ^ 用以表示以xx开头的符号

[root@confusedowlet ~]# grep '^bin' /etc/passwd bin:x:1:1:bin:/bin:/sbin/nologin

5.2 $ 以xx结尾的

[root@confusedowlet ~]# grep 'sync$' /etc/passwd sync:x:5:0:sync:/sbin:/bin/sync

5.3 ^$ 以空格开头的

[root@confusedowlet ~]# grep '^$' file

5.4 . 表示任意一个字符

[root@confusedowlet ~]# ifconfig |grep '.etmask' inet 10.0.0.130 netmask 255.255.255.0 broadcast 10.0.0.255 inet 127.0.0.1 netmask 255.0.0.0

5.5 * 重复前面0次或无数次

[root@confusedowlet ~]# ifconfig | grep 'loop*' loop txqueuelen 1000 (Local Loopback)

5.6 .* 所有(任意单个字符加重复前面0到无数次)

# 会打印全部内容且高亮显示 [root@confusedowlet ~]# ifconfig | grep '.*'

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有