1、读取文本跳过前2行,打印第1列,去掉字符串的双引号,保存文件
cat aaaa.csv | awk -F "," 'NR <= 2 {next} {print "aliyun",$1}' | sed 's/\"//g' > bbbb.csv
cat aaaa.csv | while read line; do echo $line | awk -F "," '{print "echo "$1 }' | sed 's/\"//g' >> cccc.csv ; done;
from: other
bash语法、rc、test
while [ 1 ]; do sleep 1; ll; done # 无限循环
while [ $i -lt 10 ]; do echo $i;let "i=$i+1"; done # 有限循环
cat raw.txt | while read line; do echo $line; done # readline
until [ 1 = 0 ]; do sleep 1; ll; done # 无限循环,另一中语义
for i in /media/m* ; do ls -l $i; done # 与目录资源结合
if [ 1 -eq 1 ]; then ll ;fi # test常用判断
if [[ 0 -eq 0 && 1 -eq 0 ]]; then ll ;fi ## || or 多条件test的写法1 && and (注意2层中括号)
if [ 0 -eq 0 -a 1 -eq 0 ]; then ll ;fi ## -o or 多条件test的写法2 -a and
if [ ! -e /tmp/111 -a -z "$a" ]; then ll ;fi ## 不存在111文件 且a变量长度为0 则执行ll(对应的否定是)
文件内容查看、加工(vi、cat、grep、awk、tr、sed)
ps -ef | grep java | grep -v eclipse # 查看进程,筛选出java的,排除eclipse的
echo helloworld | tr -d "o" # 删除字符o,输出 hellwrld
echo 'a:b:c' | tr -s ':' '*' # 替换字符:为*,输出 a*b*c
echo 'a:b:c' | awk -F ':' '{print $1 "+" $3 "+" $2}' # 按:切分后,按下标调整顺序,空格分割输出。a+c+b
awk -F':' '{print $1}' temp2.log | awk '{ arr[$1]++ } END { for( no in arr) { print no , arr[no] } }' | sort -n -t" " -k 2 -r # 一句话实现group by,这条不细说,自己研究
echo 'a:b:c' | sed -e 's#:#*#g' # 替换字符:为*,输出 a*b*c
sudo、top、ps、vmstat、iostat、sar、zip
sudo su admin # 切换为admin身份
sudo -u admin kill -9 xxx # 以admin身份执行kill命令
ps -ef # 查看java进程
zip -9 -p haha -r bak.zip src # 以9级压缩比、haha为密码,压缩src目录,压缩后的文件是bak.zip
ssh、scp、rsync
ssh -p 1022 root@192.168.1.200 # 从1022端口,以root身份登录到远程
scp -P 1022 openwrt-* root@192.168.1.200:/tmp/ # 通过1022端口,把openwrt开头的多个文件,传输到远程机器上的tmp目录,以root做为鉴权
rsync -avz -e 'ssh -p 1022' openwrt-* root@192.168.1.200:/tmp/ # 效果基本同上,但是只是增量同步