shell自动化处理_相关知识整理(整理中)20210329

■循环执行命令

for ((c=1;c<=5;c++)); do ls -l /AAA/BBB/CCC/xxx*.log; sleep 3; done
// 每隔3秒,执行一次ls命令,循环5次

■性能测试・监视 相关

while true; do TIME=`date "+%H:%M:%S"`;FILENAME=`ls -l | grep txt`;echo "${TIME},${FILENAME}";sleep 1; done
// 如果后面有数值相关的内容,可以把结果放到excel中,做成图表。

// ps -aux 中的cpu
// ifconfig 中的 TX RX // `ifconfig ens33 | grep "RX packets" | awk '{print $5}'`

■网络通信

while true; do TIME=`date "+%H:%M:%S"`; RX=`ifconfig ens33 | grep "RX packets" | awk '{print $5}'`; echo "${TIME},${RX}";sleep 3; done

while true; do TIME=`date "+%H:%M:%S"`; RX=`ifconfig ens33 | grep "RX packets" | awk '{print $5}'`; TX=`ifconfig ens33 | grep "TX packets" | awk '{print $5}'`; echo "${TIME},${RX},${TX}";sleep 3; done

https://blog.csdn.net/sxzlc/article/details/104889024

■循环读取文件

for line in `cat filename(待读取的文件)`
do
echo $line
done

■分割字符串

#!/bin/bash
 
string="hello,shell,split,test"  
array=(${string//,/ })  
 
for var in ${array[@]}
do
   echo $var
done 

■匹配「指定字符串」开始的行,并删除该行


DEVICE=eno16777736
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
 
GATEWAY=192.168.0.254
 
ONBOOT=yes

  sed '/^GATEWAY/d' test.txt 

[root@andrew Andrew]# sed '/^GATEWAY/d' test.txt 
DEVICE=eno16777736
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
 
 
ONBOOT=yes

 

■查找某个字符串所在行数:

方法1:
grep -n “想要查找的字符串名” 文件名
方法2:
awk ‘/匹配的字符串/{print NR}’ 文件名

■删除文件中包含指定字符串的行(sed)

删除文件中含特定字符串的行[bash]:

sed -e '/abc/d'  a.txt   // 删除a.txt中含"abc"的行,但不改变a.txt文件本身,操作之后的结果在终端显示

sed -e '/abc/d'  a.txt  > a.log   // 删除a.txt中含"abc"的行,将操作之后的结果保存到a.log

sed '/abc/d;/efg/d' a.txt > a.log    // 删除含字符串"abc"或“efg"的行,将结果保存到a.log

其中,"abc"也可以用正则表达式来代替。

■删除文件最后几行

wc -l filename    统计文件有多少行(如:总共30行)
sed -i '20,30d' filename    删除第20-30行

// -i 参数表示删除后保存在文件中

■在指定行数后面,插入新一行的内容

// 在60行之后,插入一行新的内容
// 新的内容在第61行,原来的行+1
sed -1 '60a newline,123,12345' xxxx.csv
// 「newline,123,12345」是新插入的内容

■把所有的windos换行,替换为linux换行

sed -i 's/\r//' 1.txt

// 注意
即(sed s/\n//),没有办法,删除所有的换行符。

sed是按行处理文本数据的,每次处理一行数据后,
都会在行尾自动添加trailing newline,
其实就是行的分隔符即换行符。

https://blog.csdn.net/u011729865/article/details/71773840

■查看含有某个字符串的行数

cat youFile | grep yourKey | wc -l

■查看指定目录下文件个数,并保存到变量中

fileCount=`ls /AAA/BBB/ | wc -l | awk'{print $1}'`;echo $fileCount

■根据不同的条件,执行不同的命令

while true; do second=`date +%S`;  [ $ssecond -ne "00" ] && (echo $second; sleep 1;) || (echo "waite"$second;  sleep 1; ) done

while true; do second=`date +%S`;  [ $ssecond -eq "00" ] && (echo $second; sleep 1;) || (echo "waite"$second;  sleep 1; ) done

 

 

■Linux

Unix_Linux_常用命令总结_sun0322-CSDN博客

■用语

https://blog.csdn.net/sxzlc/article/details/104872052

■sed

Linux Sed命令使用_Andrew的博客-CSDN博客_linux sed

---

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值