Linux 第七天: (08月05日) 文本处理工具

head -n 指定货权前n行
tail -n 指定获取后n行
tail -f 显示文件新追加内容

cut -d 指明分隔符,默认tab
cut -f 第几个字段
cut -c 按字符切割

paste -d 指定分隔符 file1 file2
paste -s 所有行合成一行显示

wc -l 统计行数
wc -w 统计单词数
wc -c 统计字节数
wc -m 统计字符数

sort -r 反向排序
sort -n 按数排序
sort -f 忽略大小写
sort -u 删除重复行
sort -t c 以c作为字段界定符
sort -k X

uniq -c 统计每行重复出现次数
uniq -d 统计重复的行
uniq -u 统计不重复的行

paste -d 指定分隔符 file1 file2
paste -s 所有行合成一行显示

diff file1 file2 比较两文件区别
diff -u file1 file2 > file3.patch
patch -b file1 file2 自动备份改变的文件

grep: Global search REgular expression and Print out the line
grep "$USER" /etc/passwd
grep ‘$USER‘ /etc/passwd
grep `whoami` /etc/passwd
grep --color=auot 对匹配的文本着色显示
grep -v 显示不能被匹配的行
grep -i 忽略大小写
grep -n 显示行号
grep -c 统计行数
grep -o 仅显示匹配的字符串
grep -q 静默, 不输出信息
grep -A n 后n行
grep -B n 前n行
grep -C n 前后各n行
grep -e COMM1 -e COMM2 多个之间or关系
grep -w 匹配整个单词
grep -E 使用ERE

REGEXP 基本正则表达式 BRE
REGEXP 扩展正则表达式 ERE, grep -E, egrep

字符匹配
.   匹配任意单个字符
[]  匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
元字符
[:digit:] 所有数字
[:lower:] 所有小写字母
[:upper:] 所有大写字母
[:alpha:] 所有字母
[:alnum:] 所有字母数字
[:punct:] 所有标点符号
[:space:] 空格和tab

匹配次数
* 匹配前面字符任意次数, 包括0次
.* 任意长度的任意字符
\? 匹配前面字符0或1次
\+ 匹配前面字符至少1次
\{n\} 匹配前面字符n次
\{m,n\} 匹配前面字符至少m次,至多n次
\{,n\} 匹配前面字符至多n次
\{n,\} 匹配前面字符至少n次

位置锚定
^ 行首锚定, 用户模式最左侧
& 行尾锚定, 用于模式最右侧
^  $ 用于模式匹配整行
^& 空行
^[[:space:]]*$ 空白行
\<或\b 词首锚定 用于单词模式的左侧
\>或\b 词尾锚定 用于单词模式的右侧
\< \> 匹配整个单词

分组
\( \)

egrep及扩展到正则表达式

字符匹配
egrep = grep -E
. 任意单个字符
[]指定范围的字符
[^] 不在指定范围的字符

次数匹配
* 匹配前面字符任意次数
? 匹配前面字符0或1次
{m} 匹配m次
{m,n} 至少m次, 至多n次

扩展正则表达式

位置锚定
^ 行首
$ 行尾
\< \b 语首
\> \b 语尾

分组
()
\1 \2 后向引用

C|cat   C或cat
(C|c)at Cat或cat

时间: 2024-10-22 18:12:11

Linux 第七天: (08月05日) 文本处理工具的相关文章

Linux 第30天: (08月5日) 练习和作业

变量脚本 1.编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小 server_ip=`ifconfig|grep'inet\b'|grep -v '127.0.0.1'|tr-s ' '|cut -d' ' -f3` CPUmod=`lscpu|grep -i "model name:"` Meminfo=`free -h|sed -n '2p'|tr -s ' '|cut -

Linux 第14天: (08月25日) Linux磁盘管理

本章内容磁盘结构分区类型管理分区管理文件系统挂载设备管理虚拟内存 设备文件I/O Ports: I/O设备地址一切皆文件:open(), read(), write(), close()设备类型:块设备:block,存取单位"块",磁盘字符设备:char,存取单位"字符",键盘设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信设备号码:主设备号:major number, 标识设备类型次设备号:minor number, 标识同一类型下的不同设备

Linux 第15天: (08月29日) Linux高级文件系统管理

本章内容设定文件系统配额设定和管理软RAID设备配置逻辑卷设定LVM快照btrfs文件系统 配置配额系统综述在内核中执行以文件系统为单位启用对不同组或者用户的策略不同根据块或者节点进行限制执行软限制(soft limit)硬限制(hard limit)初始化分区挂载选项:usrquota.grpquota初始化数据库:quotacheck 为用户设定配额执行开启或者取消配额:quotaon.quotaoff直接编辑配额:edquota username在shell中直接编辑:setquota u

Linux 第15天: (08月29日) 练习和作业

管理磁盘配额 fdiskpartx -a /dev/sda mount /dev/sda6 /homedfcd /homemv * /home vim /etc/fstab                            启用磁盘配额挂载选项 :r!blkid /dev/sda6  /home  ext4  default  0 0:r!blkid /dev/sda6  /home  ext4  usrquota,grpquota  0 0 mount -o remount /dev/sd

Linux 第十天: (08月15日) 文件查找和压缩

locate  非实时查找(数据库查找) /var/lib/mlocate/mlocate.dblocate -i 执行区分大小写的搜索locate -n N 只列举前N个匹配项目locate foo 搜索名称或路径中带有"foo"的文件locate -r '\.foo$'使用Regex来搜索以".foo"结尾的文件 find -name " 文件名称"支持使用glob *, ?, [], [^]find -iname" 文件名称&qu

Linux 第十天: (08月15日) 练习和作业

查找/var目录下属主为root 且属组为mail的所有文件find  /var/ -user root -group mail 查找/var目录下不属于root lp gdm的所有文件find /var/ -not \(-user root -o -user jane -o -user jane\) 查找/var目录下最近一周修改过内容 且属主不为root 也不是postfix的文件find /var/ -mtime -7 \(-not -user root -a -not group pos

Linux 第16天: (08月31日) 练习和作业

netstat -nt               查看网络连接 netstat -no               查看网络连接win tasklist |findstr ???     查看进程win echo 50 > /proc/sys/net/ipv4/ip_default_ttl    改ttl值 ping -f 10.1.250.95 -s 65507

Linux基本功杂记——[008]——08月16日课堂练习{BASH脚本}

一.构显99乘法表 #!/usr/bin/env bash test() { for((i=1;i<10;i++)) do for((x=1;x<=$i;x++)) do echo -n "$x x $i = $(($i * $x)) " done echo -e "\n" done } test | gawk 'BEGIN{RS=""}{print}' [email protected] ~/bash_script/2016-08-

Linux 第14天: (08月25日) 练习和作业

1.创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/testdir目录,且默认有acl挂载选项 2.写一个脚本,完成如下功能:(1) 列出当前系统识别到的所有磁盘设备(2) 如磁盘数量为1,则显示其空间使用信息否则,则显示最后一个磁盘上的空间使用信息