静下来,定好方向,好好干。
分类: LINUX
2007-11-08 13:13:58
action | 功能 |
p | p打印当前行 |
d | d删除当前行 |
s/pattern1/pattern2/ | s查找第一个匹配p1的串,替换为p2 |
/pattern/s/pattern1/pattern2/ | s查找符合p的行,将该行第一个匹配p1的串替换为p2 |
s/pattern1/pattern2/g | s查找匹配p1的串,全部替换为p2 |
sed缺省是把待处理文件的内容与处理结果一同输出.只想输出处理结果,加-n选项;
如:$ sed -n '/abc/p' testfile $ sed 's/b/-&-/' testfile 把abc变成a-b-c (&表示匹配p1的字串)
$sed 's/\(a\)\(b\)/-\1-~\2~/' testfile \1表示第一个()匹配的内容,\2表示第二个()匹配的内容
sed能以行为单位对文件进行流处理,而awk除了以行为单位处理,还能以列为单位对文件进行处理;
awk 'script' files, 其中命令的基本格式是: /pattern/ {action}
$ awk '{print $2;}' testfile 自动变量$1,$2...分别表示第一列,第二列等,$0表示整行;
$ awk '$2<75 {printf "%s\t%s\n", $0, "LOW";} $2>=75 {print $0;}' testfile 可进行条件判断
$ awk '/^ *$/ { x=x+1;} END {print x;}' test 统计空行的数目,可以用变量.
普通的pattern每行都执行一次,BEGIN 和 END 只是开头和结尾的时候执行一次;
awk的内建变量:
FILENAME 当前输入文件的文件名,只读
NR 当前的行号,只读,record
NF 当前行拥有的列数,只读,field
OFS 输出格式的列分割符,缺省空格
FS 输入文件的列分割符,缺省空格和TAB
ORS 输出格式的行分割符,缺省换行符
RS 输入文件的行分割符,缺省换行符
删除第10列,文件有100列
cut -d " " -f 1-9,11-100 file
awk '{$10="",print}' file