awk
$NF 末列
$(NF-1) 倒数第二列
NR 已经读出的记录数,从1开始
NR>1 表示去除第一行(列头)
# 打印行号>1的记录
awk 'NR>1{print}' <file>
# 打印目录下文件名
ll src/ |awk -F " " '{print $NF}'
# 该命令还需要手动去除列头
(ll src/ |awk -F " " '{print $NF}') > local_list.txt
# 拼接字符串
awk '{printf "\n kubectl set image deployment/" $1 " *=" $2 "\n\n"}' a.txt
gawk -F: '{printf "\nset image deployment/" $1 " *=" $2 "-nai"}' a.txt
# -W posix 打开兼容模式。但有以下限制,不识别:/x、函数关键字、func、换码序列以及当fs是一个空格时,将新行作为一个域分隔符;操作符**和**=不能代替^和^=;fflush无效。
gawk -W posix -F: '{printf "\nset image deployment/" $1 " *="$2 " -nai"}' a.txt
awk拼接
ls {1..5}.txt |awk -F "." '{print $0,$1,$2}'
# 批量添加文件后缀
ls {1..5}.txt |awk -F "." '{print "mv",$0,$1"_finished."$2}'
ls {1..5}.txt |awk -F "." '{print "mv",$0,$1"_finished."$2}' |bash
# 获取pod所在节点
kubectl get pod <pod-name> -owide | awk 'NR>1 {print $7}'
base64
不支持$
字符的转换
# 解密,可以解密K8S secret
echo "bWFuYWdlbWVudA==" |base64 -d
management
echo "123456" |base64
MTIzNDU2Cg==
echo "MTIzNDU2Cg==" |base64 -d
123456
curl
下载并执行脚本
curl -sL http://xxx.com/setup.sh | bash
查看本机外网IP
curl myip.ipip.net
查看域名证书有效期
curl -vvI https://baidu.com
上传文件至ftp
# 上传至ftp根目录
curl -u user:pwd -T 1.log ftp://xxftp.com:2121
# 上传至ftp指定目录(一次只能上传一个文件,待深入研究)
curl -u user:pwd -T 1.log ftp://xxftp.com:2121/public/
date
打印 YYYY-MM 格式日期
date +"%Y-%m"
# 1. Using echo and brace expansion:
echo 2022-{01..12}
# 2. Using seq and printf:
seq -f "2022-%02g" 1 12
# 3. Using awk:
awk 'BEGIN {for (i=1;i<=12;i++) printf "2022-%02d\n", i}'