shell 复习笔记

Posted momoangel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 复习笔记相关的知识,希望对你有一定的参考价值。

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
循环判断类
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

for((i=1;i<=10;i++));
do
echo $(expr $i \* 3 + 1);
done

条件 双括号 用分号分开,分别是 初始值;范围;变化 for do done


if [ -f "$FILE" ];then
echo "OK"
else
echo "error $FILE" > error.log
mail -s "$FILE backup fail" [email protected] <error.log
fi

开头结尾 用if --- fi 条件后; if ;then else fi

while [ "$var" != "by" ]

do

echo "you input a char $var "

read var

done

 


-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
命令类
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
sort -t : -n -k 1 new.txt (-t 分隔符 -n 以纯数字 -k 第几个域 -u 去重 -r 逆排序,-f 忽略字母大小写 -o file)
1:hello
2:hehe
8:exit
10:haha
11:nihao
12:hello

cut -d‘ ‘ -f 1 filename (-d 分隔符 -f 第几个域 -c 字符 -b 字节 utf-8 3个字节一个汉字)


sed -n "1p" file (-n p搭档使用 显示第几行 a下一行增加 i 上一行加 s 替换 "s/^s/title/g" d 删除)


date -d "19700102 08:00:00" +%Y-%m-%d:%H:%M:%S
1970-01-02:08:00:00
date -s "20171111 11:02:00"


uniq [ -c | -d | -u ] [ -f Fields ] [ -s Characters ] [ -Fields ] [ +Characters ] [ InFile [ OutFile ] ]

-c 在输出行前面加上每行在输入文件中出现的次数。
-d 仅显示重复行。
-u 仅显示不重复的行。
-f Fields 忽略由 Fields 变量指定的字段数目。
-s Characters 忽略由 Characters 变量指定的字符的数目
cut -d‘:‘ -f 2 new.txt |sort -r |uniq -c -d
2 nihao
2 hello
2 hehe

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
正则类
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
基础的 * , \<\> , \{n,m\} ,扩展的+, ?, 都是其前面的字符重复次数 《<<<重点《<<<<

#例子 new.txt
12:hello
2:hehe
10:haha
11:nihao
1:hello
20:nihao
19:hehe
8:exit
23.bay

$grep -e ‘^[1-9]:.*[t]$‘ new.txt <<<<<例子<<<<
8:exit
grep -e "\<ni\>" new.txt <<<<<例子<<<< \<ni\> 要完整的词!!!
结果找不到
$ sed ‘s/ni/\*/g‘ new.txt |grep -e ‘\<hao\>‘ <<<<<例子<<<< 单词前面是*这样可以
11:*hao
20:*hao

 

$sed "s/[:.]/\+/g" new.txt <<<<<例子<<<<
12+hello
2+hehe
.....
23+bay

$ sed "s/[l]\{2\}/\*\*/g" new.txt <<<<<例子<<<<
12:he**o
2:hehe
$ sed ‘s/ni/\*/g‘ new.txt <<<<<例子<<<<
...
11:*hao
...

$ awk -F[:] ‘{ print $1,‘\t‘,$2 }‘ new.txt |$awk -F: ‘{ print $1"\t"$2 }‘ new.txt <<<例子的区别<<<<<<
12 hello |12 hello
2 hehe |2 hehe
.... |....

cat /etc/passwd |awk -F ‘:‘ ‘BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}‘
awk -F: ‘/root/{print $7}‘ /etc/passwd
awk ‘/root/‘ /etc/passwd == grep -e ‘root‘ /etc/passwd

$awk -f awk.sc new.txt
#awk.sc
BEGIN{ FS=":";print "begin" }
{ print $1 }
END { print "end" }

 


sort cut awk 的域符号!!!!
sort -t‘:‘ -k 1
cut -d‘:‘ -f 1
awk -F[:.] { print $1 } <<<<<例子<<<< [正则 : 或 .] 如果用‘’ 不支持 sort或cut也不支持

 












































































以上是关于shell 复习笔记的主要内容,如果未能解决你的问题,请参考以下文章

《信息与编码》考试复习笔记1----第一章概论

《通信原理》复习笔记4----第四章信道

《信息与编码》考试复习笔记4----第四章离散信道容量

《信息与编码》考试复习笔记5----第五章纠错编码(难点)

《信息与编码》考试复习笔记2----第二章离散信息源

《信息与编码》考试复习笔记5----第五章纠错编码相关例题(难点)