Redian新闻
>
如何删除从行首到某个特定字符串之间的内容?
avatar
如何删除从行首到某个特定字符串之间的内容?# Unix - 噫吁兮,危乎高哉
x*k
1
使用vi或者sed,
请问如何可以删除每一行从行首开始到某一特定字符串之间的内容?
比如我有一文件,内容如下:
......
SID:53324
MID:67962
SID:53325
MID:67963
......
想得到
......
53324
67962
53325
67963
......
有没有什么命令可以避免一行一行挨个地手工操作?有没有类似“%s/^..../”这样的命
令?
多谢了!
avatar
T*r
2
avatar
f*g
3
问题在于你的这个regex会导致将最后一个:之前
的所有字符删去, 如果只要第一个:之前的
怎么办

【在 T********r 的大作中提到】

avatar
o*v
4
avatar
f*g
5
这个regex不行,达不到我要的结果
而且我使过 's/^.*[^:]://g'
还是不行

【在 o**v 的大作中提到】

avatar
f*g
6
sed -e 's/^.[^:]*://g' file
大概可以解决了
不过如果第一个字符是:的话,
这个命令会删去第二个:之前的内容
所以要小心

【在 x*k 的大作中提到】
: 使用vi或者sed,
: 请问如何可以删除每一行从行首开始到某一特定字符串之间的内容?
: 比如我有一文件,内容如下:
: ......
: SID:53324
: MID:67962
: SID:53325
: MID:67963
: ......
: 想得到

avatar
f*g
7
解决了
sed -e 's/^[^:]*://g' file
就可以删去第一个:之前的字符, 没有我前面说的哪个问题了
hehe

【在 f****g 的大作中提到】
: sed -e 's/^.[^:]*://g' file
: 大概可以解决了
: 不过如果第一个字符是:的话,
: 这个命令会删去第二个:之前的内容
: 所以要小心

avatar
o*v
8
不支持*?这样的reg啊

【在 f****g 的大作中提到】
: 这个regex不行,达不到我要的结果
: 而且我使过 's/^.*[^:]://g'
: 还是不行

avatar
f*g
9
什么东西不支持
vim or sed
sed应该支持的

【在 o**v 的大作中提到】
: 不支持*?这样的reg啊
avatar
m*s
10
why do you have to use vi or sed?
do not you want to use cut?
cut -d":" -f2 filename | vi -
if you really want to use it in vi :D
avatar
x*k
11
谢谢几位的回答,真是收益非浅啊!没想到还有这么多方法可以做到。

【在 m*s 的大作中提到】
: why do you have to use vi or sed?
: do not you want to use cut?
: cut -d":" -f2 filename | vi -
: if you really want to use it in vi :D

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。