SHELL笔记-1

来源:互联网 发布:编程助手app 编辑:程序博客网 时间:2024/05/16 14:52

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

若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;

$echo -e "a\bdddd"
dddd

$echo -e "a\adddd" //输出同时会发出报警声音
adddd

$echo -e "a\ndddd" //自动换行
a
dddd

4、source把制定的文件读入到当前脚本中并执行,通常用命令“.”来替代

source 'dirn $0'/common.sh 加载当前目录下的common.sh
..common.sh 效果同上

5、

cat filename | more
cat filename | pg
tee -a files 追加到文件末尾

5、Sed 替换

a\在当前行后添加一行或多行c\用新文本替换当前行中的文本d删除行i\在当前行之前插入文本h把模式空间的内容复制到暂存缓冲区H把模式空间的内容添加到缓冲区g取出暂存缓冲区的内容,将其复制到模式缓冲区G取出暂存缓冲区的内容,将其追加到模式缓冲区l列出非打印字符p打印行n读入下一行输入,并从下一条而不是第一条命令对其处理q结束或退出sedr从文件中读取输入行!对所选行以外的行应用所有命令s用一个字符串替换另外一个字符串sed -e 's/power/jiechen/g' /temp/ac.sh 把全文件所有的power替换成jiechen。
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

sort -t " " -k 2 test //以空格为分隔符,以第二个字段进行排序

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域
0 0