找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 2110|回复: 11

求助大神们帮忙写个替换值的脚本

[复制链接]
悬赏2恩山币已解决
本帖最后由 ningzhonghui 于 2017-3-23 12:39 编辑

如有什文件是    abc  没后缀的   打开里面的内容是

aaa:$9$Te6w65mq$NlTXV3bzUkyBmEVeXsVEX0:xxxx:0:xx
bbb::xxxx:0:xx

我想替换红色的字符串,问题是红色的字符串是动态随机变的,没固定值
我想到的办法是获取头两个  :  之间的内容 liux 很烂不会写正规,麻烦懂写的大神们帮写一个,在此谢谢了!

最佳答案

查看完整内容

做个shell 脚本 内容: 然后 运行这个脚本,参数就是行号 以空格分隔就行。比如 a.sh 1 3 6 8 9 这里abc的文档名称写死了,没有用参数传了。 这样总可以结了吧?
我的恩山、我的无线 The best wifi forum is right here.
本帖最后由 zhaocz 于 2017-3-23 11:02 编辑
ningzhonghui 发表于 2017-3-23 09:47
大牛,这是连续的写法,我要的是不连续且多条的写法,你这样写4 5 6 7 8 9 10都取到,比如说我只要4 5 7  ...

做个shell 脚本
内容:
  1. for arg in "$@"
  2. do
  3. sed -i  ''$arg's~^\([^:]*\):\([^:]*\):~\1:your_newpass:~' abc
  4. done
复制代码

然后 运行这个脚本,参数就是行号 以空格分隔就行。比如 a.sh 1 3 6 8 9
这里abc的文档名称写死了,没有用参数传了。
这样总可以结了吧?

点评

谢谢,大牛,是可以结了!就改用SHELL吧  详情 回复 发表于 2017-3-23 11:19
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

这个不是保存密码的吗?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 zhaocz 于 2017-3-22 10:51 编辑

sed -i  's~^\([^:]*\):\([^:]*\):~\1:your_newpass:~' abc
给个分吧。虽然我也不缺分。

点评

大牛,比如这里好多行,我只要改第一行和第4行和第6行,那怎么改啊,你这个把所有行都改了  详情 回复 发表于 2017-3-22 11:15

评分

参与人数 1恩山币 +1 收起 理由
ningzh*** + 1 亲,你这么厉害,我想做你的经纪人!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

sed -i  's~^\([^:]*\):\([^:]*\):~\1:your_newpass:~' abc
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
zhaocz 发表于 2017-3-22 10:47
sed -i  's~^\([^:]*\):\([^:]*\):~\1:your_newpass:~' abc
给个分吧。虽然我也不缺分。

大牛,比如这里好多行,我只要改第一行和第4行和第6行,那怎么改啊,你这个把所有行都改了

点评

sed -i '1s~^\([^:]*\):\([^:]*\):~\1:your_newpass:~' abc sed -i '4s~^\([^:]*\):\([^:]*\):~\1:your_newpass:~' abc sed -i '6s~^\([^:]*\):\([^:]*\):~\1:your_newpass:~' abc 一行来一下也行啊。  详情 回复 发表于 2017-3-22 12:11
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

ningzhonghui 发表于 2017-3-22 11:15
大牛,比如这里好多行,我只要改第一行和第4行和第6行,那怎么改啊,你这个把所有行都改了

sed -i  '1s~^\([^:]*\):\([^:]*\):~\1:your_newpass:~' abc
sed -i  '4s~^\([^:]*\):\([^:]*\):~\1:your_newpass:~' abc
sed -i  '6s~^\([^:]*\):\([^:]*\):~\1:your_newpass:~' abc
一行来一下也行啊。


点评

这是笨办法啊,要高效点的可以吗 万一有10几行要指定的,这样一条条来,效率低啊  详情 回复 发表于 2017-3-22 15:15
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
zhaocz 发表于 2017-3-22 12:11
sed -i  '1s~^\([^:]*\):\([^:]*\):~\1:your_newpass:~' abc
sed -i  '4s~^\([^:]*\):\([^:]*\):~\1:you ...

这是笨办法啊,要高效点的可以吗 万一有10几行要指定的,这样一条条来,效率低啊

点评

sed -i '4,10s。。。。。。。。。。。。。 就是4-10行  详情 回复 发表于 2017-3-23 08:48
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

ningzhonghui 发表于 2017-3-22 15:15
这是笨办法啊,要高效点的可以吗 万一有10几行要指定的,这样一条条来,效率低啊

sed -i  '4,10s。。。。。。。。。。。。。
就是4-10行

点评

大牛,这是连续的写法,我要的是不连续且多条的写法,你这样写4 5 6 7 8 9 10都取到,比如说我只要4 5 7 9 10 你明白我说的意思吗  详情 回复 发表于 2017-3-23 09:47
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
zhaocz 发表于 2017-3-23 08:48
sed -i  '4,10s。。。。。。。。。。。。。
就是4-10行

大牛,这是连续的写法,我要的是不连续且多条的写法,你这样写4 5 6 7 8 9 10都取到,比如说我只要4 5 7 9 10  你明白我说的意思吗

点评

做个shell 脚本 内容: 然后 运行这个脚本,参数就是行号 以空格分隔就行。比如 a.sh 1 3 6 8 9  详情 回复 发表于 2017-3-23 10:59
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
zhaocz 发表于 2017-3-23 10:59
做个shell 脚本
内容:

谢谢,大牛,是可以结了!就改用SHELL吧

点评

好的,那就悬赏解决了。  详情 回复 发表于 2017-3-23 11:51
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

ningzhonghui 发表于 2017-3-23 11:19
谢谢,大牛,是可以结了!就改用SHELL吧

好的,那就悬赏解决了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-28 20:12

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表