x*k 发帖数: 106 | 1 使用vi或者sed,
请问如何可以删除每一行从行首开始到某一特定字符串之间的内容?
比如我有一文件,内容如下:
......
SID:53324
MID:67962
SID:53325
MID:67963
......
想得到
......
53324
67962
53325
67963
......
有没有什么命令可以避免一行一行挨个地手工操作?有没有类似“%s/^..../”这样的命
令?
多谢了! |
T********r 发帖数: 6210 | |
f****g 发帖数: 44 | 3 问题在于你的这个regex会导致将最后一个:之前
的所有字符删去, 如果只要第一个:之前的
怎么办
【在 T********r 的大作中提到】
|
o**v 发帖数: 1662 | |
f****g 发帖数: 44 | 5 这个regex不行,达不到我要的结果
而且我使过 's/^.*[^:]://g'
还是不行
【在 o**v 的大作中提到】
|
f****g 发帖数: 44 | 6 sed -e 's/^.[^:]*://g' file
大概可以解决了
不过如果第一个字符是:的话,
这个命令会删去第二个:之前的内容
所以要小心
【在 x*k 的大作中提到】 : 使用vi或者sed, : 请问如何可以删除每一行从行首开始到某一特定字符串之间的内容? : 比如我有一文件,内容如下: : ...... : SID:53324 : MID:67962 : SID:53325 : MID:67963 : ...... : 想得到
|
f****g 发帖数: 44 | 7 解决了
sed -e 's/^[^:]*://g' file
就可以删去第一个:之前的字符, 没有我前面说的哪个问题了
hehe
【在 f****g 的大作中提到】 : sed -e 's/^.[^:]*://g' file : 大概可以解决了 : 不过如果第一个字符是:的话, : 这个命令会删去第二个:之前的内容 : 所以要小心
|
o**v 发帖数: 1662 | 8 不支持*?这样的reg啊
【在 f****g 的大作中提到】 : 这个regex不行,达不到我要的结果 : 而且我使过 's/^.*[^:]://g' : 还是不行
|
f****g 发帖数: 44 | 9 什么东西不支持
vim or sed
sed应该支持的
【在 o**v 的大作中提到】 : 不支持*?这样的reg啊
|
m*s 发帖数: 3 | 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 |
x*k 发帖数: 106 | 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
|