如何使用shell脚本搜索和替换文件的内容?

时间:2011-11-10 15:38:41

标签: shell

我几天前就开始学习shell脚本了。我的方案是,我必须使用shell脚本搜索和替换文件中不同行中存在的内容。

例如,我在文件中提到了路径名: -

path = /home/test/db

我的名字是这样,

path = /home/test/db

下面,       路径名“/ home”必须使用shell脚本在文件的指定行中替换为“/ Second”。通过使用“sed”命令我已经尝试并替换文件的内容只有一行但我正在努力替换哪些存在于不同的行。我在shell脚本中使用“If”条件。请帮我解决这个问题。

谢谢和问候,

3 个答案:

答案 0 :(得分:1)

我相信你错过了sed命令中的g选项。见下文

sed "s/find/replace/g" filename

答案 1 :(得分:0)

sed -i's / original / new / g'file.txt

说明:

  

sed = Stream EDitor    -i =就地(即保存回原始文件)命令字符串:

     

s =替代命令

     

原文 =描述要替换的单词的正则表达式(或只是单词本身)

     

=用

替换它的文本      

g =全局(即替换所有而不仅仅是第一次出现)

     

file.txt =文件名

答案 2 :(得分:0)

下面提到的代码将搜索" search_folder_name"下的所有JS文件。它会找到" version_number"对于已定义文件夹中的所有实例,并将其替换为定义的相应值。将下面的分区代码保存在.sh文件中,例如test.sh



#!/bin/bash
versionNo=0.0.1
find ./search_folder_name/ -name \*.js -type f -print0 | while read -d $'\0' file; do
    echo "Processing $file"
    sed -i '' 's/{version_number}/'$versionNo'/g' $file
done