设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
怎么替换行中的某一不确定字段??
返回列表
查看:
2349
|
回复:
8
怎么替换行中的某一不确定字段??
[复制链接]
Z钢弹
Z钢弹
当前离线
积分
5
IP卡
狗仔卡
发表于 2003-2-14 11:12:58
|
显示全部楼层
|
阅读模式
现有一文本文件.内容如下:
/root/text #mysql
#KILL
/root/big #you
/root/ghg
/root/lll
'用Sed命令.我可以删除"#KILL"和空行.
但是在/root/text后面的#mysql和/root/big后面的#you这两个字段我怎么删除呢??
#mysql和#you是不确定的字段.了就是说#后面可以跟任意的字段名称,而不一定是mysql和you
感觉好像SED就是用来进行行操作的.
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-2-14 12:11:39
|
显示全部楼层
javalee//home/javalee/x>cat k
/root/text #mysql
#KILL
/root/big #you
/root/ghg
/root/lll
javalee//home/javalee/x>sed -n 's/[#\][a-z]*[a-z$]//p' k
/root/text
/root/big
复制代码
回复
支持
反对
使用道具
举报
显身卡
Z钢弹
Z钢弹
当前离线
积分
5
IP卡
狗仔卡
楼主
|
发表于 2003-2-14 14:57:28
|
显示全部楼层
谢谢老大.但是如果#后面的是数字怎么办??我现在只能另起一行.再用一次SED命令把他解决了.
还有.为什么我用VI 编辑一个文本后.再用
sed -n 's/[#\][a-z]*[a-z$]//p' k
执行一遍后.我再用VI打开这个文本.可里面的内容却没有变啊??
可在SED好以后出现的命令行中我看到的是已经改变的结果.这是为什么啊.
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-2-14 16:17:57
|
显示全部楼层
建议你看看本版关于正则表达式的帖子,sed是个流编辑器,经过sed命令处理的数据都保存在缓冲区里,你用vi编辑的是保存在磁盘上的数据,当然你可以 > 重定向到一个文件里.
回复
支持
反对
使用道具
举报
显身卡
Z钢弹
Z钢弹
当前离线
积分
5
IP卡
狗仔卡
楼主
|
发表于 2003-2-15 21:20:39
|
显示全部楼层
谢谢楼主~再三感谢哦~
但是还有一个小变数的问题。就是#后面是不确定的数。而用[a-z]
只能查出字母子。那要是#897xy89ZZZXX
怎么处理呢?^_^
楼主我刚开始学SHELL。问的问题有些白吃了~不要骂我~*_*
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-2-15 22:56:14
|
显示全部楼层
那可以用grep/sed/awk组合命令将#号作为一个搜索模式,再作处理
具体的建议你看看本版[置顶]或[精华]的帖子,里面有关于这方面详细的介绍,
你说的
#897xy89ZZZXX
可以用简单的:
sed -n 's/[#\][a-zA-Z0-9]*[a-zA-Z0-9$]//p'
具体情况具体分析;)
回复
支持
反对
使用道具
举报
显身卡
Z钢弹
Z钢弹
当前离线
积分
5
IP卡
狗仔卡
楼主
|
发表于 2003-2-16 14:24:43
|
显示全部楼层
哇~今天特地去上海书城想找一些关于SHELL的书回来补充一下。结果。。。。找来找去只找到两本。晕哪。这两本我都没买。看看里面内容全拿来骗钱的。
回复
支持
反对
使用道具
举报
显身卡
Z钢弹
Z钢弹
当前离线
积分
5
IP卡
狗仔卡
楼主
|
发表于 2003-2-17 11:18:10
|
显示全部楼层
汗~-_-~!
sed -n '/[#\][.]*[.$]//p'
就可以搞定了.命令可能有点不对.但思路就是这样.[.]*是通配符.我现在LINUX因为我改了一个系统文件.把他改坏掉了要重新安装了.所以没办法试.楼主你试试看吗~
我们以后多切磋一下,哦~应该是楼主你多教教我哦~^_^
回复
支持
反对
使用道具
举报
显身卡
artou
artou
当前离线
积分
30
IP卡
狗仔卡
发表于 2003-2-17 11:51:08
|
显示全部楼层
直接用这个就可以了:
sed -e 's/[:#:].*//'
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表