Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57338
  • 博文数量: 28
  • 博客积分: 823
  • 博客等级: 军士长
  • 技术积分: 250
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-10 16:58
文章分类

全部博文(28)

文章存档

2011年(1)

2010年(27)

我的朋友

分类: LINUX

2010-08-20 23:21:07

把一个文件里的文件传FTP.

ftp -in <open 10.0.0.1
user uname passwd
$(sed 's/^/mput /' ftpfile.txt)
bye
EOF

 

使用s e d在文件中定位文本的方式

x x为一行号,如1
x , y 表示行号范围从x到y,如2,5表示从第2行到第5行
/ p a t t e r n / 查询包含模式的行。例如/ d i s k /或/[a-z]/
/ p a t t e r n / p a t t e r n / 查询包含两个模式的行。例如/ d i s k / d i s k s /
p a t t e r n / , x 在给定行号上查询包含模式的行。如/ r i b b o n / , 3
x , / p a t t e r n / 通过行号和模式查询匹配行。3 . / v d u /
x , y ! 查询不包含指定行号x和y的行。1 , 2 !


使用s e d在文件中定位文本的方式

x x为一行号,如1
x , y 表示行号范围从x到y,如2,5表示从第2行到第5行
/ p a t t e r n / 查询包含模式的行。例如/ d i s k /或/[a-z]/
/ p a t t e r n / p a t t e r n / 查询包含两个模式的行。例如/ d i s k / d i s k s /
p a t t e r n / , x 在给定行号上查询包含模式的行。如/ r i b b o n / , 3
x , / p a t t e r n / 通过行号和模式查询匹配行。3 . / v d u /
x , y ! 查询不包含指定行号x和y的行。1 , 2 !

sed编辑命令

p 打印匹配行
= 显示文件行号
a 在定位行号后附加新文本信息
i 在定位行号后插入新文本信息
d 删除定位行
c 用新文本替换定位文本
s 使用替换模式替换相应模式
r 从另一个文件中读文本
w 写文本到一个文件
q 第一个模式匹配完成后推出或立即推出
l 显示与八进制A S C I I代码等价的控制字符
{ } 在定位行执行的命令组
n 从另一个文件中读文本下一行,并附加在下一行
g 将模式2粘贴到/pattern n/
y 传送字符
n 延续到下一输入行;允许跨行的模式匹配语句


例子
sed -n '2p' file.txt //打印第二行
sed -n '1,4p' file.txt //print 1-4 line
sed -n '1,$p' file.txt //print all

sed -n '/require/'p cart.php /匹配require
sed -n '/$/'p cart.php /匹配$特殊字符 要用
sed -n '/.*uire/'p cart.php
sed -n -e '/require/p' -e '/require/=' cart.php //匹配require 并且打印行号
sed -n '/require/=' cart.php //只打印匹配的行号


替换命令用替换模式替换指定模式,格式为:
[ a d d r e s s [,address]] s/ pattern-to-find /replacement-pattern/[g p w n]
s选项通知s e d这是一个替换操作,并查询p a t t e r n - t o - f i n d,成功后用r e p l a c e m e n t - p a t t e r n替
换它。
替换选项如下:
g 缺省情况下只替换第一次出现模式,使用g选项替换全局所有出现模式。
p 缺省s e d将所有被替换行写入标准输出,加p选项将使- n选项无效。- n选项不打印输出
结果。
w 文件名使用此选项将输出定向到一个文件。

sed 's/class/CLASS/' cart.inc 例如:
sed 's/class/CLASS/g' cart.inc //替换所有的匹配项目

sed 's/class/CLASS/w cart.inc' out.file //替换后的结果输出到 out.file中

sed '/require./r cart.php' 1.php //把cart.php文件中/require 后面的数据添加到1.php之前。
sed 's/##*//g' 1.php //把1.php文件中所有##替换成空格。

sed 's/^0*//g' 1.php //把行首的0设为空。
sed 's/^M//g' 1.php //除去控制字符^M 键。

^M 的产生 ,+V 按J
^[[ 的产生 +V + 方向键 <-

处理报文输出

1) 使用s/-*//g删除横线- - - - - -。
2) 使用/^$ / d删除空行。
3) 使用$d删除最后一行
4) 使用1d删除第一行。
5) 使用awk {print $1}打印第一列。
命令如下,这里使用了cat,并管道传送结果到sed命令
cat cart.php |sed 's/--*//g' | sed '/^$/d' | sed '$d' | sed '1d' | awk '{print $1}'


快速一行命令
下面是一些一行命令集。([ ]表示空格, [ ]表示t a b键)
‘s / . $ / / g’ 删除以句点结尾行
‘-e /abcd/d’ 删除包含a b c d的行
‘s / [ ] [ ] [ ] * / [ ] / g’ 删除一个以上空格,用一个空格代替
‘s / ^ [ ] [ ] * / / g’ 删除行首空格
‘s / . [ ] [ ] * / [ ] / g’ 删除句点后跟两个或更多空格,代之以一个空格
‘/ ^ $ / d’ 删除空行
‘s / ^ . / / g’ 删除第一个字符
‘s /CO L ( . . . ) / / g’ 删除紧跟C O L的后三个字母
‘s / ^ / / / g’ 从路径中删除第一个
‘s / [ ] / [ ] / / g’ 删除所有空格并用t a b键替代
‘S / ^ [ ] / / g’ 删除行首所有t a b键
‘s / [ ] * / / g’ 删除所有t a b键

阅读(303) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~