文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>sed:显示文件中的控制字符

sed:显示文件中的控制字符

时间:2008-05-20  来源:poplar.xu

显示文件中的控制字符

1、$vi dos.txt
进入vi后,用ctrl+v 再用ctrl+M产生控制字符^M不知对不对

使用cat -v filename命令查看编辑好的文件

[Copy to clipboard] [ - ] CODE:
[sam@chenwy sam]$ cat -v dos.txt
12332##DISO##45.12^M
00332##LPSO##23.14^M
01299##USPD##34.46^M
s e d格式为:

[Copy to clipboard] [ - ] CODE:
[ a d d r e s s,[ a d d r e s s ] ] l
‘l’意为列表。一般情况下要列出整个文件,而不是模式匹配行,因此使用l要从第一到最后一行。模式范围1,$即为此意。

[Copy to clipboard] [ - ] CODE:
[sam@chenwy sam]$ sed -n '1,$l' dos.txt
12332##DISO##45.12\r$
00332##LPSO##23.14\r$
01299##USPD##34.46\r$
处理控制字符
使用s e d实现的一个重要功能是在另一个系统中下载的文件中剔除控制字符。
下面是传送过来的文件( d o s . t x t)的部分脚本。必须去除所有可疑字符,以便于帐号所有者使用文件。

删除所有的#字符很容易,可以使用全局替换命令。这里用一个空格替换两个或
更多的#符号。

[Copy to clipboard] [ - ] CODE:
[sam@chenwy sam]$ sed 's/##/ /g' dos.txt
12332 DISO 45.12
00332 LPSO 23.14
01299 USPD 34.46
。删除所有行首的0。使用^符号表示模式从行首开始, ^ 0 *表示行首任意个0。模式s / ^ 0 * / / g设置替换部分为空,即为删除模式,正是要求所在。

[Copy to clipboard] [ - ] CODE:
[sam@chenwy sam]$ sed 's/##/ /g;s/^0*/ /g' dos.txt
12332 DISO 45.12
332 LPSO 23.14
1299 USPD 34.46
最后去除行尾^ M符号,为此需做全局替换。设置替换部分为空。模式为:
‘s / ^ m / / g’,注意‘^ M’,这是一个控制字符。
在命令行里也必须用^M控制字符耶!?

[Copy to clipboard] [ - ] CODE:
[sam@chenwy sam]$ sed 's/##/ /g;s/^0*/ /g;s/^M/ /g' dos.txt
12332 DISO 45.12
332 LPSO 23.14
1299 USPD 34.46


[Copy to clipboard] [ - ] CODE:
[sam@chenwy sam]$ cat dos.txt | sed 's/^0*/ /g' | sed 's/^M/ /g' | sed 's/##/ /g'

排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载