shell文件处理工具

简介:
vim /etc/resolve.conf 查看dns
6.shell脚本命令
 1.diff
diff        file file   比较两个文件的不同
    -c         显示周围的行
    -u          按照一格式统一输出生成补丁
    -r          比较两个目录中文件的不同
pattch      file    file.path   打补丁
    -b              备份原文件
2.grep
grep    关键字符    文件|目录   在文件或目录中查找含有关键字的行
grep    -i              忽略大小写
    -n              显示关键字所在行
    -c              显示过滤结果的行数
    -v              反向过滤
    -E      “关键字1|关键字2”    过滤多个关键字
    -r      目录        在目录中查找含有关键字的文件
注意:^关键字   以关键字开头
      关键字$   以关键字结尾    
^root 以root开头
root$ 以root结尾
3.cut
cut 截取字符
cut -d  分隔符  指定分隔符
cut -f  1,7    显示指定的列
cut -c      显示指定字符
cut -d " " -f 10    截取空格后第十列到下一个分隔符空格之间的内容
4.sort 排序
sort 
    -n  纯数字排序
    -u  去掉重复的
    |uniq -c去掉重复并统计重复个数
    -t  指定分隔符
    -k  指定列
sort -t : -k 2 file -nu
5.uniq
sort file | uniq -c 去掉多余并统计重复次数  
         -d 显示多余行
         -u 显示唯一的行
6.tr
tr 'a-z' 'A-Z' file
sed 's/原字符/替换字符/g' file
sed -e '策略1 ' -e '策略2 'file  多个策略用-e
sed -i file 把转入后的文件输出到指定文件
sed '3,5s/原字符/替换字符/' file
sed xd 屏蔽指定行
sed xp 复制指定行
sed -n xp 只显示指定行
脚本
#!/bin/bash
MAX=$( wc- l $1 | cut -d " " -f 1)
for NUM in $( seq $MAX )
do
        USERNAME=$(sed -n ${NUM}p$1)
        PASSWD=$(sed in ${NUM}p $2)
        useradd $USERNAME
        echo $PASSWD | passwd --stdin$USERNAMR
done

7.awk   数据处理工具,将一行分成数个段进行处理,以字段为最小的处理单位

awk '条件类型1{动作1} 条件类型2{动作2}...' filename
[root@taxing ~]# last -n 5
kiosk    pts/0        :0               Wed Nov  9 19:46  still logged in   
kiosk    pts/0        :0              Wed Nov  9 18:57 - 19:46  (00:48)   
kiosk    :0           :0               Wed Nov  9 18:57  still logged in   
reboot   system boot  3.10.0-327.el7.x Thu Nov 10 02:56 -19:59  (-6:-57)   
kiosk    :0           :0               Wed Nov  9 17:55 - 17:55  (00:00)   

wtmp begins Wed Sep 28 00:38:05 2016
[root@taxing ~]# last -n 5 | awk '{print $1 "\t" $3}'
kiosk   :0
kiosk   :0
kiosk   :0
reboot  boot
kiosk   :0

$0 代表一整行的数据
内置变量
NF 每一行($0)拥有的字段总数
NR 目前awk处理的是第几行的数据
FS 目前的分隔字符,默认是空格键
[root@taxing ~]# last -n 5 | awk '{print $1 "lines:" NR "\tcolumes: "NF}'
kiosklines:1     columes: 10
kiosklines:2     columes: 10
kiosklines:3     columes: 10
rebootlines:4    columes: 11
kiosklines:5     columes: 10
lines:6  columes: 0
wtmplines:7  columes: 7
条件类型
[root@taxing ~]# cat /etc/passwd | awk '{FS=":"} $3<10 {print $1"\t" $3}'
root:x:0:0:root:/root:/bin/bash 
bin 1
daemon  2
adm 3
lp  4
sync    5
shutdown    6
halt    7
mail    8
第一行还是默认的以空格键为分隔符,想要从第一行开始就在分隔符 {FS=":"} 前加 BEGIN 关键字  除此之外还有END
[root@taxing ~]# cat /etc/passwd | awk 'BEGIN{FS=":"} $3<10 {print$1 "\t" $3}'
root    0
bin 1
daemon  2
adm 3
lp  4
sync    5
shutdown    6
halt    7
mail    8
awk命令进行计算
name    1st 2nd 3th
zed 12321   34123   41234
timo    23413   34124   35213
lol 34223   12441   22341

 cat file | awk 'NR==1{printf "%10s%10s %10s %10s %10s\n",$1,$2,$3,$4,"TOTAL"}NR>=2{TOTAL=$2+$3+$4 printf"%10d %10d %10d %10d%10.2f\n,$1,$2,$3,$4,TOTAL}'

本文转自   Taxing祥   51CTO博客,原文链接:http://blog.51cto.com/12118369/1871427

相关文章
|
7月前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
562 1
|
2月前
|
Shell
Shell 文件包含
10月更文挑战第5天
33 4
|
7月前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
675 3
|
3月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
3月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
597 2
|
4月前
|
Shell Linux 网络安全
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
|
4月前
|
Shell Linux 数据处理
Shell文本处理秘籍:掌握这11种工具,让数据处理如虎添翼!
在Linux信息环境,文本数据处理是一项基础而重要的技能。对于广大Linux用户而言,掌握Shell环境下的文本处理工具不仅能提高工作效率,还能在面对复杂数据时游刃有余。 本文将介绍,那些在文本处理中不可或缺的`11`种命令工具,让数据处理技能更上一层楼。
|
5月前
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
68 3
|
4月前
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
|
4月前
|
Shell Linux Perl
在Linux中,编写一个shell脚本,用于统计指定目录下所有文件的行数。
在Linux中,编写一个shell脚本,用于统计指定目录下所有文件的行数。