■循环执行命令
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.youkuaiyun.com/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.youkuaiyun.com/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-优快云博客
■用语
https://blog.youkuaiyun.com/sxzlc/article/details/104872052
■sed
Linux Sed命令使用_Andrew的博客-优快云博客_linux sed
---