返回顶部
首页 > 资讯 > 操作系统 >linux文本处理工具及正则表达式集锦
  • 262
分享到

linux文本处理工具及正则表达式集锦

集锦文本工具 2022-06-04 21:06:11 262人浏览 泡泡鱼
摘要

cat命令:查看文本内容 cat [选项]... [文件]... -E 显示行结束符 -n 显示文本内容时显示行号 -A

cat命令:查看文本内容

cat [选项]... [文件]...

-E 显示行结束符

-n 显示文本内容时显示行号

-A 显示所以控制符

-b 非空行编号

-s 压缩连续的空行成一行


[root@boGon ~]# cat -n /etc/issue > test.txt    ##查看文件内容并显示行号,重定向到test.txt文件中
[root@bogon ~]# cat test.txt 
  1 S
  2 Kernel r on an m
  3 
[root@bogon ~]# cat > file <<EOF    ##创建file文件,输入内容以EOF结束
> kernel r on an m
> EOF
[root@bogon ~]# cat file 
kernel r on an m

more 分页显示

more [OPTioNS...] FILE...

less 分页显示,是man命令使用的分页器

[root@bogon ~]# less /etc/Httpd.conf
[root@bogon ~]# cat /etc/httpd.conf |more

head命令 :

head [OPTION]... [FILE]...

    -n  显示文件前n行,默认显示前10行

    -c # 显示文件前#个字节内容

    -q  不显示包含给定文件名的文件头


[root@bogon ~]# head -5 /etc/fstab     ##显示文件前5行
#
# /etc/fstab
# Created by anaconda on Mon May 1 04:49:06 2017
#
[root@bogon ~]# head -q -n 5 /etc/fstab /etc/issue    ##显示多个文件前5行,并且不显示文件头
#
# /etc/fstab
# Created by anaconda on Mon May 1 04:49:06 2017
#
S
Kernel r on an m  

tail命令:

tail [OPTION]... [FILE]...

-f   实时查看,常用监控日志文件

   -c # 显示后#字节

   -n # 显示后#行,默认显示行10行


[root@bogon ~]# tail -2 /etc/passwd    ##显示文件后2行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[root@bogon ~]# tail -f /var/log/messages    ##不停地去读最新的内容,有实时监视的效果,用Ctrl+c来终止
May 2 02:46:26 localhost systemd: Configuration file /usr/lib/systemd/system/wpa_supplicant.service is marked executable. Please remove executable permission bits. Proceeding anyway. May 2 02:46:26 localhost yum[16325]: Installed: httpd-2.4.6-45.el7.Centos.4.x86_64 May 2 03:01:01 localhost systemd: Started Session 10 of user root. May 2 03:01:01 localhost systemd: Starting Session 10 of user root. May 2 03:45:49 localhost systemd-logind: Removed session 4. May 2 03:46:20 localhost systemd: Started Session 11 of user root. May 2 03:46:20 localhost systemd-logind: New session 11 of user root. May 2 03:46:20 localhost systemd: Starting Session 11 of user root. May 2 04:01:01 localhost systemd: Started Session 12 of user root. May 2 04:01:01 localhost systemd: Starting Session 12 of user root.

cut命令:

cut [OPTION]... [FILE]...

  -d 指明分隔符,默认tab

  -f 第# 个字段

  #,#[,#] :离散的多个字段,例如1,3,6

  #-# :连续的多个字段, 例如1-6

  混合使用:1-3,7

  -c 按字符切割

  --output-delimiter=STRING指定输出分隔符

显示文件前10行,以“:”作为分隔符打印第1和第7个字段并分隔符换成空格输出:


[root@bogon ~]# head /etc/passwd |cut -d ":" -f1,7 --output-delimiter="  "  ##查看系统用户使用的shell
root  /bin/bash      
bin  /sbin/nologin
daemon  /sbin/nologin
adm  /sbin/nologin
lp  /sbin/nologin
sync  /bin/sync
shutdown  /sbin/shutdown
halt  /sbin/halt
mail  /sbin/nologin
operator  /sbin/nologin
[root@bogon ~]# ip addr |tail -4 |head -1 |cut -d "/" -f1 |cut -d " " -f6  ##获取ip地址
192.168.25.102

paste命令:

  paste [OPTION]... [FILE]...

  -d 分隔符: 指定分隔符,默认用TAB

  -s 所以行合并成一行显示


[root@bogon ~]# paste /etc/resolv.conf /etc/issue    ##合并输出两个文件的内容
# Generated by NetworkManager  S
nameserver 202.106.46.151  Kernel r on an m
nameserver 202.106.195.68  
[root@bogon ~]# paste -s /etc/issue    ##对输出的内容独立占一行
S  Kernel r on an m  

wc命令:统计文件内容

-l 统计行数

-w 统计单词个数

-c 统计字节数

-m 只计数字符总数

   -L  打印最长行的长度


[root@bogon ~]# cat /etc/passwd |wc -l  ##统计文件的行数
22
[root@bogon ~]# echo "aaa bbb ccc" |wc -w    ##统计输出的单词数量
3
[root@bogon ~]# echo "abcdef" |wc -m    ##统计输出有多少个字节
7

文本排序:sort [options] file(s)

  -r   逆序排序

  -n   根据字符串数值进行比较

  -f   忽略字符大小写

  -u   去重。配合-c,严格校验排序;不配合-c,则只输出一次排序结果

  -t   使用指定的分隔符代替非空格到空格的转换

  -k 1 在位置1 开始一个key,在位置2 终止(默认为行尾)


[root@bogon ~]# head /etc/passwd |sort -t ":" -k 3nr    ##以“:”分割对第三个字段数值进行倒序排列
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
[root@bogon ~]# cat /etc/passwd |sort -t':' -k 7 -u    ##以“:”分割对第7个字段排序,去重
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
halt:x:7:0:halt:/sbin:/sbin/halt
bin:x:1:1:bin:/bin:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

uniq 命令:从输入中删除重复的前后相接的行

   uniq [OPTION]... [FILE]...

  -c: 显示每行重复出现的次数;

  -d: 仅显示重复过的行;

  -u: 仅显示唯一的行;

  -i: 比较时不区分大小写


[root@bogon ~]# uniq -c ip.txt     ##显示重复行出现的次数,相邻行且完全一样为重复
   3 101.200.78.99
   1 103.41.52.94
   2 106.185.47.161
   1 101.200.78.99
   2 113.240.250.155
   1 13.0.782.215
   1 185.130.5.231

文件比较:

diff命令:比较两个文件之间的区别

  -r  递归比较

  -u  输出“统一的(unified )

  patch 命令复制在其它文件中进行的改变(要谨慎使用!)

  -b 选项来自动备份改变了的文件


[root@bogon ~]# diff file1.txt file2.txt 
8c8      ##表示第8行有区别
< 113.240.250.155
---
> 133.240.250.155

替换和删除字符:

tr [OPTION]... SET1 [SET2]

-c 或——complerment :取字符集的补集

-d 或——delete :删除所有属于第一字符集的字符;

-s 或—squeeze-repeats :把连续重复的字符以单独一个字符表示

-t 或--truncate-set1 :先删除第一字符集较第二字符集多出的字符


[root@bogon ~]# tr -s 'n' < file1.txt     ##删除空行
103.41.52.94
106.185.47.161
S
Kernel r on an m
106.185.47.161
[root@bogon ~]# tr A-Z a-z < file1.txt     ##把大写字母换成小写
103.41.52.94
106.185.47.161
s
kernel r on an m
106.185.47.161

grep命令:过滤文本内容

grep [OPTIONS] PATTERN [FILE...]

-i 查找时忽略大小写

-v 取反

    -n 显示匹配的行号

   -c   统计匹配的行数

   -o 仅显示匹配到的字符串;

   -q 静默模式,不输出任何信息

  -A #   after, 后#行 行

  -B #  before, 前#行 行

  -C #   context, 前后各#行 行

  -e   实现多个选项间的逻辑or 关系

  -w   整行匹配整个单词

  -E   使用扩展正则表达式

正则表达式:

. 匹配任意单个字符;

[] 匹配指定范围内的任意单个字符

[^] 匹配指定范围外的任意单个字符

*   匹配前面的字符任意次,包括0次 次贪婪模式:尽可能长的匹配

.*   任意长度的任意字符

?   匹配其前面的字符0 或1次

+   匹配其前面的字符至少1次

{m}   匹配前面的字符m次

{m,n}   匹配前面的字符至少m 次,至多n次

{,n}   匹配前面的字符至多n次 次

{m,}   匹配前面的字符至少m次

^   行首锚定,用于模式的最左侧

$   行尾锚定,用于模式的最右侧

^PATTERN$  用于模式匹配整行

^$   空行

^[[:space:]]*$   空白行

< 或 或 b   词首锚定,用于单词模式的左侧

> 或 或 b   词尾锚定;用于单词模式的右侧

<PATTERN> 匹配整个单词

()    将一个或多个字符捆绑在一起,当作一个整体进行处理

[:alpha:] 所有字母,包括大、小写

[:alnum:] 所有字母和数字

[:upper:] 所有大写字母

[:lower:] 所有小写字母

[:digit:] 所有数字

[:punct:] 所有标点符号

[:space:] 空格和Tab

扩展正则表达式:

.   任意单个字符

[]    指定范围的字符

[^]   不在指定范围的字符

*   匹配前面字符任意次

?   0 或1次 次

+   1 次或多次

{m}   匹配m次

{m,n}   至少m ,至多n次

^  行首

$   行尾

<, b  语首

>, b    语尾

分组  ()

  后向引用:1, 2, ...

或者:a|b

C|cat: C 或cat

(C|c)at:Cat 或cat


[root@bogon ~]# grep '^(root|apache)' test.txt   ##过滤以root或apache开头的行
root:x:0:0:root:/root:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[root@bogon ~]# grep -R /sbin/nologin *     ##递归从所以文件中查询匹配的内容
test.txt:bin:x:1:1:bin:/bin:/sbin/nologin
test.txt:daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@bogon ~]# ip addr |grep "dynamic" |tr -s " " |cut -d " " -f3 |cut -d "/" -f1  ##过滤ip地址
192.168.25.102
[root@bogon ~]# ip addr |grep -E -o "([0-9]{1,3}[.]){1,3}[0-9]{1,3}"
127.0.0.1
192.168.25.102
192.168.25.255
[root@bogon ~]# df -Th |tr -s " " |sort -k 6nr |head -1  ##查出使用率的最大百分比值的分区
/dev/sda1 xfs 497M 125M 373M 25% /boot
[root@bogon ~]# cat /etc/passwd |sort -t ':' -k 3n |tail -1 |cut -d ":" -f1,3,7
systemd-bus-proxy:999:/sbin/nologin      ##找出uid最大值的用户,并显示用户名、UID、及shell类型

以上所述是小编给大家介绍的linux文本处理工具及正则表达式集锦,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程网网站的支持!

--结束END--

本文标题: linux文本处理工具及正则表达式集锦

本文链接: https://lsjlt.com/news/18753.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • linux文本处理工具及正则表达式集锦
    cat命令:查看文本内容 cat [选项]... [文件]... -E 显示行结束符 -n 显示文本内容时显示行号 -A ...
    99+
    2022-06-04
    集锦 文本 工具
  • linux文本处理工具及正则表达式的示例分析
    这篇文章主要介绍linux文本处理工具及正则表达式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!cat命令:查看文本内容       &...
    99+
    2023-06-09
  • Linux行处理工具之grep 正则表达式详解
    目录正则表达式在grep应用以及差别匹配案例fgrep总结之前我们学习了linux grep的基本操作,以及提及了linux grep的孪生兄弟egrep 和 fgrep,这次我们来...
    99+
    2022-11-13
    linux grep 正则表达式 grep 正则表达式
  • Centos7 Shell编程之正则表达式、文本处理工具详解
    目录1. 正则表达式1.1 常规匹配1.2 常用特殊字符2. 文本处理工具2.1 cut2.2 awk1. 正则表达式 正则表达式可以很灵活的提供各种模糊匹配的筛选规则。常被用来检索...
    99+
    2022-11-13
    shell正则表达式 shell文本处理工具
  • 正则表达式工具是什么
    正则表达式工具是用于创建、编辑、测试和应用正则表达式的软件或在线服务。它们提供了一个用户友好的界面,使用户能够轻松地构建和调试正则表达式模式,并在文本中进行搜索、替换或提取操作。正则表达式工具通常具有以下功能:编写和编辑正则表达式:提供一个...
    99+
    2023-07-10
  • 正则表达式工具怎么使用
    使用正则表达式工具可以按照以下步骤进行:选择一个正则表达式工具:首先,你需要选择一个适合你需求的正则表达式工具。你可以选择在线工具,如Regex101、RegExr,或者使用文本编辑器插件,如Sublime Text、Visual Stud...
    99+
    2023-07-10
  • Shell—正则表达式(grep命令、sed工具)
    正则表达式是一种用于匹配、查找和替换文本的强大工具。在Shell中,可以使用grep命令和sed工具来应用正则表达式。1. grep...
    99+
    2023-09-22
    Shell
  • 正则表达式工具在线测试工具有哪些
    常用的在线正则表达式测试工具:Regex101(https://regex101.com/):Regex101 是一个功能强大的在线测试工具,支持多个正则表达式引擎和语言,如JavaScript、PHP、Python等。它提供了实时的匹配结...
    99+
    2023-07-10
  • Python正则表达式基本原理
    目录⭐️正则表达式  正则表达式是什么?🌟1.实例引入🌟2.match()✨匹配目标✨贪婪匹配🌟3.findall()🌟常用符号🌟特殊字符🌟总结⭐️正则表达式&n...
    99+
    2023-05-15
    Python正则表达式原理 Python正则表达式
  • 正则表达式工具在线测试工具怎么选择
    选择适合的正则表达式在线测试工具时,可以考虑以下几个因素:支持的正则表达式引擎和语言:不同的编程语言和框架可能使用不同的正则表达式引擎和语法规则。确保所选的在线测试工具支持你所使用的正则表达式引擎和语言。功能和特性:不同的工具可能提供不同的...
    99+
    2023-07-10
  • 详解Linux--shell脚本之正则表达式
    一、正则表达式的概念及特点: 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。规定一...
    99+
    2022-06-04
    详解 脚本 正则表达式
  • 正则表达式中可视化工具有哪些
    这篇文章主要介绍了正则表达式中可视化工具有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. iHate Regex地址:https://ihateregex.io/介绍...
    99+
    2023-06-15
  • PHP Linux脚本操作经验分享:利用正则表达式进行文本处理
    正则表达式是处理文本的强大工具,能够快速而灵活地匹配、搜索和替换文本中的模式。在PHP Linux脚本编程中,利用正则表达式进行文本处理常常是必不可少的技能。本文将分享一些实用的正则表达式操作技巧,并提供具体的代码示例供参考。匹配和提取文本...
    99+
    2023-10-21
    Linux PHP 正则表达式
  • Linux正则表达式awk怎么理解
    这篇文章主要为大家分析了Linux正则表达式awk怎么理解的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux正则表达式awk怎么理解”的知识吧。awk...
    99+
    2023-06-28
  • 支持正则表达式更名的命令行工具
    一直使用TotalCommander操作文件,这个软件自带更名工具,支持正则表达式更名。但是无法批量执行更名。批量更名还是用批处理更方便,但是系统自带的更名命令仅支持通配符。 在网上...
    99+
    2024-04-02
  • Linux Shell脚本的编程之正则表达式
    一 正则表达式与通配符 1 正则表达式是用在文件中匹配符合条件的字符串,正则是包含匹配,grep,awk,sed等命令可以支持正则表达式 2 通配符是用来匹配符合条件的文件名,通配符是完全匹配,ls,fin...
    99+
    2022-06-04
    脚本 正则表达式 Linux
  • 深入理解PHP正则表达式处理中文字符
    深入理解PHP正则表达式处理中文字符 正则表达式是对字符串进行模式匹配和搜索的一种强大工具,能够帮助开发者高效地处理字符串操作。PHP作为流行的服务器端脚本语言,也提供了丰富的正则表达...
    99+
    2024-04-02
  • 批处理FINDSTR正则表达式怎么用
    这篇文章给大家分享的是有关批处理FINDSTR正则表达式怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。findstr . 2.txt 或 Findstr "." 2.txt 从文件2.t...
    99+
    2023-06-09
  • Linux中grep命令及正则表达式怎么用
    这篇文章主要为大家展示了“Linux中grep命令及正则表达式怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中grep命令及正则表达式怎么用”这篇文章吧。Linux系统中grep...
    99+
    2023-06-28
  • 批处理中正则表达式findstr怎么用
    这篇文章给大家分享的是有关批处理中正则表达式findstr怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。语法 findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] ...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作