本文由FunTester 学习社区小伙伴输出,后续还会有各路学习笔记分享,欢迎大家关注支持。
windows下每一行的结尾是\n\r,而在linux下文件的结尾是\n,这样window写编辑的shell脚本拷贝到linux下时,每一行的结尾就会多出来一个字符\r,这个\r字符会被显示为^M,
同样原理使用MobaTextEditor读取从windows传到linux下文件会乱码
:s/aa/bb # 将光标所在行第一个 aa 替换为 bb
:s/aa/bb/g # 将光标所在行所有 aa 替换为 bb
:%s/aa/bb/g # 全文执行替换 aa 替换为 bb
:3,10s/aa/bb/g # 将第3行到第10行 aa 替换为 bb
:%s/\\/\//g # 全文\替换为/ (特殊字符:^、$、*、/、\和.都需要转义,前面加上\)
:%s,\\,/,g # 或用逗号分割(/可以不用转义)
:%s,aa,bb,gic # 全文 aa(忽略大小写) 替换为bb,每次替换提示是否替换
:sp filename
#!/bin/bash
##
## 构造琐碎文件并计算MD5值
## author: brh
## date: 2020-10-09
##
case $1 in
"-h")
echo "1: ./xxx.sh touch_file num"
echo "2: ./xxx.sh touch_md5_file num"
echo "3: ./xxx.sh check_md5_file num"
;;
"touch_file")
## 生成琐碎文件
for((i=1;i<=$2;i++));
do
echo $i > $i.txt
done
;;
"touch_md5_file")
## 计算琐碎文件MD5并保存
for((i=1;i<=$2;i++));
do
md5sum $i.txt > $i.txt.md5
done
;;
"check_md5_file")
## 比对琐碎文件MD5是否一致
for((i=1;i<=$2;i++));
do
md5num1=`md5sum $i.txt`
md5num2=`cat $i.txt.md5`
if [ "$md5num1"x = "$md5num2"x ]; then
echo "$i.txt MD5 数据一致"
else
echo "$i.txt MD5 数据不一致"
fi
done
;;
esac