1、Find 查找
find pathname
find name
-depth 按深度优先查找,会忽略参数“-prune”
find /apps -name "/apps/bin" -prune -o -print 在apps目录下查找,但忽略bin目录
2、匹配区间
* 任意字符,包括空字符串
? 任意单个字符
[A-Z] 匹配中括号中的A到Z之间的字符
[!A-G] 匹配A到G以外的任何字符
3、echo
4、source把制定的文件读入到当前脚本中并执行,通常用命令“.”来替代
source 'dirn $0'/common.sh 加载当前目录下的common.sh..common.sh 效果同上
5、
cat filename | morecat filename | pg
tee -a files 追加到文件末尾
5、Sed 替换
a\ | 在当前行后添加一行或多行 |
c\ | 用新文本替换当前行中的文本 |
d | 删除行 |
i\ | 在当前行之前插入文本 |
h | 把模式空间的内容复制到暂存缓冲区 |
H | 把模式空间的内容添加到缓冲区 |
g | 取出暂存缓冲区的内容,将其复制到模式缓冲区 |
G | 取出暂存缓冲区的内容,将其追加到模式缓冲区 |
l | 列出非打印字符 |
p | 打印行 |
n | 读入下一行输入,并从下一条而不是第一条命令对其处理 |
q | 结束或退出sed |
r | 从文件中读取输入行 |
! | 对所选行以外的行应用所有命令 |
s | 用一个字符串替换另外一个字符串 |
sed -e '1,10 s/power/jiechen/g' /temp/ac.sh 把文件1到10行所有的power替换成jiechen。
6、Sort排序
sort命令的一般格式为:
sort -cmu -o output_file [other options] +pos1 +pos2 input_files
下面简要介绍一下sort的参数:
选项 |
含义 |
-b |
ignore leding blanks 忽略每行前面开始出的空格字符 |
-d |
dictionary-order 字典排序,仅考虑空格、数字和字符 |
-f |
ignore-case忽略大小写,将小写全转为大写后比较 |
-g |
general-numeric-sort 按照数值来比较 |
-i |
ignore-nonprinting 只考虑可打印的字符,忽略任何非显示字符 |
-M |
month-sort 按照月份来比较,前面3个字母依照月份的缩写进行排序(compare (unknown) < `JAN' < ... < `DEC') |
-n |
numeric-sort 按字符串上的数字来比较,可包含前导空格、可选减号、十进制数字、千分位分隔符和可选基数符 |
-r |
reverse 按倒序排列 |
-c |
check 检查待排序文件是否已经按照指定的排列顺序排好序了 |
-k |
key=POS1[,POS2] 指定一个或几个字段作为排序关键字,字段位置从posl开始,到pos2为止([pos1,pos2)),如不指定pos2,则关键字为从posl到行尾。字段和字符的位置从1开始。 |
-m |
merge 只是单纯的合并已经排好序的文件,不再对合并后的文件进行排序 |
-o |
output=FILE 将输出结果保存到指定的文件中,也可以使用重定向 |
-s |
stable stabilize sort by disabling last-resort comparison通过禁止最后比较来实现稳定排序 |
-S |
buffer-size=SIZE 设置主内存的大小缓冲区 |
-t |
field-separator=SEP 使用指定的字符作为字段分隔符,默认为空格 |
-T |
temporary-directory=DIR 将临时文档放入指定的临时文件夹,而不是默认的$TMPDIR 或/tmp; |
-u |
unique 对排序后相同的行只保留一行,即消重 |
-z |
zero-terminated 自然结尾—0bytes,而不是使用一个新行 |
+n |
n为域号,使用此域进行排序,以0开始 |
n |
n为域号,在排序时忽略此域,一般与+n一起使用。 |
--version, --help |
6、cut剪切
cut -c3 filename 提取第3个字符
-c 指定提取的字符数或者字符范围
-f 提取的域数或者域范围
-d 改变域分隔符
cut -c1-3,6-13 filen 提取1-3、6-13位
cut -d: -f1,4 filen 提取第1和第4域
cut -d: -发-3 filen 提取1~3域