空行处理
linux系统下删除空行,用vim底行模式'%s/^n$//g' 可以删除空行并真正修改文件,但文件数量太大时耗时不可预估,于是操作文件删除空行并重定向到一个新的文件是不错的选择。
常用特殊符号的含义:^代表行开头,转义 *重复匹配 $代表行尾 d删除 s是空白匹配 *代表出现0次或者多次
方式一:grep 命令 cat file | grep -v '^$' > newfile
或者
grep -v '^$' file 方式二:sed 命令 cat file | sed '/^$/d' > new file
或
cat file | sed '5d' #知道空行是第5行,直接删除空行
字符替换
# 注意这里的 " & " 符号,如果没有 “&”,就会直接将匹配到的字符串替换掉 sed 's/^/添加的头部&/g' #在所有行首添加 sed 's/$/&添加的尾部/g' #在所有行末添加 sed '2s/原字符串/替换字符串/g' #替换第2行 sed '$s/原字符串/替换字符串/g' #替换最后一行 sed '2,5s/原字符串/替换字符串/g' #替换2到5行 sed '2,$s/原字符串/替换字符串/g' #替换2到最后一行
遍历打印变量
情形一:遍历打印日期
for day in 2019-04-{01..05} do echo ${day} done
输出:
2019-04-01
2019-04-02
2019-04-03
2019-04-04
2019-04-05
格式化输出
for cur_hour in `seq 1 5` do echo ${cur_hour} | awk '{printf("%02d ",$0)}' # 补全两位数 done
输出:
01
02
03
04
05
【参考资料】
[1]. Amei6536, sed字符串替换