linux中sed怎么反选,bash笔记
0.———->>>>>>>>>if [ “&word” = “condition” ] ;then … fi  注意空格!空格!
1.单引号是直接返回字符串,双引号会将$变量值返回
2.反单引号“中间可以插⼊其他命令,其返回值可赋值给变量
4.declare -i number=$RANDOM*10/32768 使⽤declare宣告数值类型: -i int, $RANDOM/32768为0-1 , *n即为0-n
5.declare -a:array -i:int -x:将变量声明为环境变量,与export同 -r:readonly
6.sum=10+20; echo $sum #10+20 由于bash默认变量都为字符,因此,declar -i sum=10+20 此时sum=30
6.$? 为上⼀条命令的返回值
8.ulimit 命令可以⽤来限定登录⽤户资源使⽤
9.${variable#str}:从variable变量中删除str(从最前到最后,⼀个#最短匹配) ${variable##str}:从variable变量中删除str(2个#最长匹配)
10.%为从最后往前删除,%%同理为最长匹配
11.${variable/str1/str2}:将variable中的str1⽤str2来取代(只取代第⼀个) ${variable//str1/str2}:将variable中的str1全部⽤str2来取代
12.username=${username-root} 针对username的值有没有设定来决定”username”的值
变量設定⽅式        str 沒有設定        str 為空字串        str 已設定⾮為空字串
var=${str-expr}    var=expr          var=                  var=$str
var=${str:-expr}  var=expr          var=expr            var=$str
var=${str+expr}  var=                  var=expr            var=expr
var=${str:+expr}  var=                  var=                  var=expr
var=${str=expr} str=expr var=expr    str 不變 var=      str 不變 var=$str
var=${str:=expr} str=expr var=expr  str=expr var=expr    str 不變 var=$str
var=${str?expr}  expr 輸出⾄ stderr  var=                  var=$str
var=${str:?expr} expr 輸出⾄ stderr  expr 輸出⾄ stderr    var=$str
“-“表⽰没有设定就为”-“后⾯的字符串,”+”表⽰已经设定了就为后⾯的字符串。”:”为严格条件
“=”不会将str赋值,只有当str没有设定的时候才会给str赋值。不同于c++: a=b=c的从右到左赋值。var始终只等于str,不受expr影响
“?”同样,var始终是等于str,不受expr影响
uset str;var=${str?变量不存在} #⽤来判断变量是否存在的⼀种⽅式
13.alias la=’ls -a’ 命令别名 unalias
14.history -n:列出最近n条历史命令 -c:将shell中所有history内容clear -a:将新增指令add到histfiles中,若不存在,加⼊
~/.bash_history
-r:read histfiles的内容到⽬前shell的history中 -w:write history内容写⼊histfiles中,histfiles不存在,写⼊默认~/.bash_history
15. !number:执⾏history中,第number条指令 !!:执⾏上⼀条指令 !command:由最近的指令向前搜寻,执⾏以command开头的指令
16. head/tail -f -n 10 filename 显⽰filename⽂件的头部/尾部内容 -f为循环显⽰ -n为⾏数
17. find dir -name filename
18. gawk ‘/pattern1/{action1}/pattern2/{action2}’ filename 如:gawk ‘/bash/{print $2}’ 在中到包
含/bash/的记录,打印第2个字段
gawk ‘$1!=”name”{print}’ filename 第⼀个字段与name不同的所有记录
gawk -F “;” ‘/pattern/{action}’ -F设置分隔符,此处为’;’,如果为”,采⽤\”进⾏转义
$3~/pattern/ 表⽰第三个字段与pattern来匹配 /pattern/: /^b/以b开头的字段 /b$/以b结束的字段 /i.m/存在i的字段 /a|b/a或b匹配的字段 /a*b/a出现0或n次的字段(注意不是以a开头b结尾的字段)
BEGIN{print”Startingtheprocessthefile”}
$1==”UNIX”{print}
$2>10{printf”Thislinehasavalueof%d”,$2}
END{print”Finishedprocessingthefile.Bye!”}
此程序中,先显⽰⼀条信息:Startingtheprocessthefile,然后将所有第⼀个字段等于UNIX的整条记录显⽰出来,然后再显⽰第⼆个字段⼤于10的记录,最后显⽰信息:Finished
processingthefile.Bye!。
echo $var | cut -c 12- -c表⽰保存第12个字符-最后的字符,也可以cut -c 12-20 保存12-20区间的字符
21.sort: -f 忽略⼤⼩写 -b忽略最前⾯的空⽩字符 -M以⽉份排序(JAN,DEC等) -n以数字来排序 -r反向排序 -u相同内容仅出现⼀⾏ -t分隔符-k n以第n栏来作为依据排序(同order by)
默认是以a,b,c,d..来排序
22.last | cut -d ‘ ‘ -f1 | sort | uniq -c(uniq相同内容仅出现⼀⾏ c为统计次数,i忽略⼤⼩写)
23. cat /fig | wc
141 722 4617
# 輸出的三個數字中,分別代表: 『⾏、字數、字元數』 -l 仅列出⾏数 -w仅列出单词个数(words) -c字节数(bytes) -m字符个数
24.ls -l / | tee -a ~/homefile | more tee为双向重导向 ⼀个可以导向到⽂件,⼀个导向到屏幕输出 -a为add 即追加到⽂件,不覆盖原⽂件
25.last | tr ‘[a-z]’ ‘[A-Z]’ 表⽰将⼩写字母替换成⼤写字母 tr: -d 删除字符串 -s取代掉重复的字元
26.cat /fig | col -x | cat -A | more col -x通常⽤来将tab符号⽤空⽩符号替代
27.join -t ‘:’ /etc/passwd /etc/shadow 将第⼆个⽂件加⼊到第⼀个⽂件 join: -t 分隔符 -i忽略⼤⼩写 -1 n第⼀个⽂档以第n个字段来做匹配基准 -2 m第⼆个⽂档以第m个字段来匹配
28.paste [-d] file1 file2 将file1和file2合并 -d为分隔符,默认是tab,即file1.line1(tab)file2.line1
30.split -b 300k /etc/termcap termcap 将⼀个⽂档分割为多个⽂档 -b为设定⼤⼩ termcap为前缀,分割后为
termcapaa,termcapab,ac..
31. find /sbin -perm +7000 | xargs ls -l 因为ls不是管道命令,即前⼀条命令的结果不能通过管道(|)传递给ls,此时使⽤xargs,将结果变为stdin传递给ls
32.#====================遍历⽂件内容=====================
> while read oneline;do
echo $oneline
done
#===================================================
33.-eq 等于
-ne 不等于
-gt ⼤于
-ge ⼤于等于
-lt ⼩于variable怎么记
-le ⼩于等于
34.case $var in
pattern)
command  ;;
*) command ;;
esac
35. sed -i ‘s/str1/str2/g’ filename 将filename中的str1⽤str2替代
sed -i ‘s/str1/str2/g’ | `grep str1 -rl /dir` dir下的str1⽂件名改为str2
sed ‘y/1234567890/abcdefghij/’ filename -y 1234567890与abcdefghij⼀⼀对应替换(1->a 2->b)
sed -i ‘s/^str1.*$/str2/g’ filename 将str1开头的这⼀⾏所有内容替换成str2
36.awk ‘{n=NR;if(n==1)n=2;else if(n==2)n=1;print n,$0}’ filename|sort -n -k1|cut -d ” ” -f2- 交互⽂件的第⼀与第⼆⾏(或其他任意⾏)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。