免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 20155 | 回复: 23
打印 上一主题 下一主题

如何用shell将文件中的字符串进行替换 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-01-15 15:25 |只看该作者 |倒序浏览

现在有数十个文本文件,我想将其中的一个字符串全部替换成另外的字符串,
一个一个文件去vi的话,太麻烦了,能不能用一个shell一下子把所有的文件全部处理了.

论坛徽章:
0
2 [报告]
发表于 2003-01-15 15:59 |只看该作者

如何用shell将文件中的字符串进行替换

ls -1 | awk '{printf "sed \047s/STR1/STR2/g\047 %s >%s.sed;mv %s.sed %s\n", $1, $1, $1, $1;}' | ksh

论坛徽章:
0
3 [报告]
发表于 2003-01-15 16:47 |只看该作者

如何用shell将文件中的字符串进行替换

我用这个脚本完成了,junk文件中存放所有需要操作的文件

#/usr/bin/sh
#Shell script for replace the string to string1 of files
while read LINE
do
        LN=`wc -l $LINE|awk '{print $1}'`
        sed -e 1,"$LN"s/$2/$3/g $LINE>Tempfile
        cp -f Tempfile $LINE
done < $1

论坛徽章:
0
4 [报告]
发表于 2003-01-15 16:51 |只看该作者

如何用shell将文件中的字符串进行替换

[quote]原帖由 "taige"]ls -1 | awk '{printf "sed \047s/STR1/STR2/g\047 %s >%s.sed;mv %s.sed %s\n", $1, $1, $1, $1;}' | ksh[/quote 发表:



\047 是什么字符?   

论坛徽章:
0
5 [报告]
发表于 2003-01-15 17:23 |只看该作者

如何用shell将文件中的字符串进行替换

没看懂你的程序

\047是单引号(')

论坛徽章:
0
6 [报告]
发表于 2003-01-15 18:01 |只看该作者

如何用shell将文件中的字符串进行替换

不好意思,我把简单的事情高复杂了,你把复杂的事情高简单了
前面的我们称他为菜鸟,后面的我们称他为高手

论坛徽章:
0
7 [报告]
发表于 2003-01-15 18:08 |只看该作者

如何用shell将文件中的字符串进行替换

试试用如下方法:
for i in file_list
do
      vi <<-!
          :g/xxxx/s//XXXX/g

论坛徽章:
0
8 [报告]
发表于 2003-01-15 18:12 |只看该作者

如何用shell将文件中的字符串进行替换

不好意思,写一半按错键就发送了
试试用如下方法:
for i in file_list
do
vi $i <<-!
:g/xxxx/s//XXXX/g
:wq
!
done

论坛徽章:
0
9 [报告]
发表于 2003-01-15 18:57 |只看该作者

如何用shell将文件中的字符串进行替换

for i in file_list
do
vi $i <<-!
:g/xxxx/s//XXXX/g
:wq
!
done

看不懂你的意思,我运行了一把
error message:
./sh1[8]: here document `!' unclosed
原意是不是可以进vi编辑
能说一下吗?

论坛徽章:
0
10 [报告]
发表于 2003-01-15 19:28 |只看该作者

如何用shell将文件中的字符串进行替换

ls -1 | awk '{printf "sed \047s/STR1/STR2/g\047 %s >%s.sed;mv %s.sed %s\n", $1, $1, $1, $1;}' | ksh

能不能告诉这条命令是干什么的。
我执行它报错。自执行它之后我每次执行ls显示如下:
</u1/users/carrier/y1/test> ls -al  
ls -al
total 24  
drwxrwxr-x    2 carrier  top          4096  1月 15 19:31 .
drwxrwxrwx    4 carrier  top          4096  1月 15 19:04 ..
......
</u1/users/carrier/y1/test> ls -l  
ls -l
total 16
-rw-rw-r--    1 carrier  top            30  1月 15 19:04 abc
.........
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP