问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

shell脚本定位某个文件中特定位置的字符串并进行替换应该怎么写?_百度...

发布网友 发布时间:2022-04-30 13:47

我来回答

4个回答

懂视网 时间:2022-05-01 12:29

test10.sh #!/bin/bash #使用for循环在/test10目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件 dir=/root/wyb/test10/ [ ! -d $dir ] && mkdir -p $dir for i in `seq 10` do touch $dir`echo $RANDOM|md5sum|cut -c 1-10`_oldboy.html done [root@localhost wyb]# bash test10.sh [root@localhost wyb]# cd test10 [root@localhost test10]# ls 3fb16229e0_oldboy.html 5bf08cf5ce_oldboy.html 73e073e1e6_oldboy.html 860bafa69b_oldboy.html c0b0067928_oldboy.html 512c517124_oldboy.html 7245bf5bea_oldboy.html 76f98bef45_oldboy.html 94a1245d85_oldboy.html f37ace5e6a_oldboy.html [root@localhost test10]#

 

[root@localhost wyb]# cat xiugai.sh 
#!/bin/bash
#将test10目录下的文件oldboy全部改成oldgirl(用for循环实现),并且html改成大写。
#3fb16229e0_oldboy.html 5bf08cf5ce_oldboy.html 73e073e1e6_oldboy.html 860bafa69b_oldboy.html c0b0067928_oldboy.html
#512c517124_oldboy.html 7245bf5bea_oldboy.html 76f98bef45_oldboy.html 94a1245d85_oldboy.html f37ace5e6a_oldboy.html

cd test10
for i in `ls` 
do

 a=`echo $i|cut -c 1-10`
 mv ${a}_oldboy.html ${a}_oldgirl.HTML


done
[root@localhost wyb]# bash xiugai.sh 
[root@localhost wyb]# cd test10
[root@localhost test10]# ls
3fb16229e0_oldgirl.HTML 5bf08cf5ce_oldgirl.HTML 73e073e1e6_oldgirl.HTML 860bafa69b_oldgirl.HTML c0b0067928_oldgirl.HTML
512c517124_oldgirl.HTML 7245bf5bea_oldgirl.HTML 76f98bef45_oldgirl.HTML 94a1245d85_oldgirl.HTML f37ace5e6a_oldgirl.HTML
[root@localhost test10]# 

 

shell脚本,在指定目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件。

标签:

热心网友 时间:2022-05-01 09:37

根据位置替换即可:

read ip
sed -ri "/subnet/s/(subnet )[^ ]+( netmask.*)/\1$ip\2/" /mnt/file

/subnet/ - 先正则匹配到含有subnet的行,然后替换。

替换的时候将不变的部分用小括号括起来,后面依次用\1 , \2 原封不动地引用回来。

-r 选项用于支持扩展正则,这样就不需要额外的转义符。

[^ ] 表示不为空格的任意一个字符,+ 表示重复该字符至少1次。

热心网友 时间:2022-05-01 10:55

oldip=`cat /mnt/file | grep "subnet" | awk '{print $2}'`  //取得那个位置的ip
sed -i  "s/$oldip/\$ip/" /mnt/file   //替换为新的IP

热心网友 时间:2022-05-01 12:30

是192.168.1.0会变但是他所在的行数不变的意思吗

sed '行数s/xxxx/bbbb/' aaa.file追问sed '行数s/xxxx/bbbb/' aaa.file

所在行是不会变的 但是问题在于xxxx会变
有没有什么方法可以替换的时候不用到xxxx?直接使用xxxx在这一行所在的位置这样可以做到吗?

追答sed '行数/c subnet $ip netmask 255.255.255.0 {' file

看看行不行
或者
sed '行数s/.*/subnet $ip netmask 255.255.255.0 {' file

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 梦见流产,生下一怪物 梦见自己流产,产下一个怪物 如何使用sed或awk 替换文本中包含有特殊字符//等 内容 sed或者awk如何替换一段文字中的某些字符 awk如何替换批量文件中的字符 如何用sed或awk模糊匹配指定字符串并删除/替换 梦见自己生一个头是鸟的怪物是怎么回事 解梦·梦见生怪物 打电话可以接通,但是对方听不到我的声音 QQ聊天记录导入后以前聊天的表情都看不到了 把手机QQ聊天记录文件导入到新手机上,在新手机的QQ里能看导入进来的聊天记录吗? 牛不吃草却吃土 怎么回事?牛没精神 走路打喘。 母牛不吃草 站立时腿颤抖 还心跳快怎么回事 qq聊天记录导入 的记录怎么查看 牛吃草不倒嚼还发抖怎么办? 牛两腿发抖,脖子冒汗,还不吃草,是怎么回事。 牛涨肚后不吃草腿哆嗦 牛不吃草咳嗽浑身发抖流鼻涕嘴流白沫是怎么回事 牛不吃东西是什么原因 ...不爱喝水,不反嚼还看起来不精神是怎么回事,有什么医治的土方吗?_百 ... 梦见别人小便时生出一个血淋淋的怪物 总是梦见自己怀了一个小怪物,而且手和脚会从肚皮上伸出来,是怎么回事... 如何使用Awk过滤文本或字符串使用模式特定操作 – SHELL脚本对LINUX下指定文本文件的满足条件的行的特定位置字符串进行替换 怎么用awk或sed去掉文件中的所有双引号或单引号 通过技术手段访问某著名视频网站,但是其上的视频一个也播放不了,怎么回事?Youtube awk脚本文件如何从命令行获得参数的值,并用这个值替代相应域的值并写入到原文件。 awk匹配的字符串中含有‘/’时怎么弄? awk如何匹配以#开头的字符串 在美国怎么看韩剧啊,下什么软件才行啊 awk如何指定分隔符为多个字符 道聚城app老是加载中 5320都有几个版本? 开启FLV加速是什么意思? 现在去登cf活动怎么一直在加载,抽奖也抽不了,道聚城免费领抢也领不了... 大便是绿色的怎么回事? BM肌活的糙米水好不好用? 为什么BM肌活的糙米水能成为爆品? 怎么样才能和热巴视频? 华熙生物糙米水致痘原因- 问一问