精华内容
下载资源
问答
  • 笔记: 注:如果不需要查找子目录,仅需要在当前目录替换,可直接用sed命令: ...grep和sed替换文件中字符串 将当前目录下的所有.c、.h文件的str1字符串替换为str2字符串。 参数解释: sed: -i ...

    阅读:https://www.cnblogs.com/Ryan-Lee/p/5855899.html

    笔记:

    注:如果不需要查找子目录,仅需要在当前目录替换,可直接用sed命令:

    sed -i s/"str1"/"str2"/g ./*.[ch]

    grep和sed替换文件中的字符串

    将当前目录下的所有.c、.h文件中的str1字符串替换为str2字符串。

    参数解释:
    sed:
    -i 表示操作的是文件,``括起来的grep命令,表示将grep命令的的结果作为操作文件
    s/"str1"/"str2"/表示查找str1并替换为str2,后面跟g表示一行中有多个str1的时候,都替换,而不是仅替换第一个

    grep:
    -r表示查找当前目录以及所有子目录
    -l表示仅列出符合条件的文件名,传给sed命令做替换操作
    --include="*.[ch]" 表示仅查找.c、.h文件

    sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ./`

     

    展开全文
  • sed 替换文件中字符串

    万次阅读 2016-04-13 03:15:16
    sed -e 's/foo/bar/g' myfile sed -i 's/foo/bar/g' ./m* sed -i '.bak' 's/foo/bar/g' ./m* Error: command a expects \ followed by text sed: RE error: illegal byte sequence

    sed -e 's/foo/bar/' myfile

    将 myfile 文件中每行第一次出现的foo用字符串bar替换,然后将该文件内容输出到标准输出

    sed -e 's/foo/bar/g' myfile

    g 使得 sed 对文件中所有符合的字符串都被替换, 修改后内容会到标准输出,不会修改原文件

    sed -i 's/foo/bar/g' myfile
    选项 i 使得 sed 修改文件

    sed -i 's/foo/bar/g' ./m*
    批量操作当前目录下以 m 开头的文件

    sed -i 's/foo/bar/g' `grep foo -rl --include="m*" ./`

    grep 命令中,选项`r`表示查找所有子目录,`l`表示仅列出符合条件的文件名,用来传给sed命令做操作,`--include="m*"` 表示仅查找 m 开头的文件
    
    操作示例:
    ```
    sed -i '' 's/<img src=\"http:\/\/website\.cn\/f\/30/<img src=\"30/g' ./*.htm
    ```
    
    *错误*:
    >command a expects \ followed by text
    
    选项`i`的用途是直接在文件中进行替换。为防止误操作带来灾难性的后果,sed在替换前可以自动对文件进行备份,前提是需要提供一个后缀名。mac osx下是强制要求备份的,centos下是可选的
    `sed -i '.bak' 's/foo/bar/g' ./m*`
    如果不需要备份文件,使用空字符串来取消备份,mac osx下可以使用如下命令完成替换操作:
    `sed -i '' 's/foo/bar/g' ./m*`
    
    >sed: RE error: illegal byte sequence'  
    
    可设置环境变量解决
    
    `export LC_COLLATE='C'`
    `export LC_CTYPE='C'`
    
    [1] http://www.path8.net/tn/archives/4077
    [2] http://blog.sina.com.cn/s/blog_5fd841bf0101dt0r.html
    [3] http://www.netingcn.com/mac-osx-sed-command-expects-followed-by-text.html
    [4] http://lfstar.blog.163.com/blog/static/5637898720134365651965/
    [5] http://stackoverflow.com/questions/11287564/getting-sed-error-illegal-byte-sequence-in-bash
    
    展开全文
  • 实际工作遇到一个问题:需要在某一个文件下,将所有包含aaa字符串全部替换为bbb字符串。之前处理这种方式是用vim打开各个文件,进行编辑并批量替换。这次想用一个更方便的方法来实现,想到了sed命令。 实现用过...

    前言:
    实际工作中遇到一个问题:需要在某一个文件下,将所有包含aaa字符串全部替换为bbb字符串。之前处理这种方式是用vim打开各个文件,进行编辑并批量替换。这次想用一个更方便的方法来实现,想到了sed命令。

    实现用过过程中遇到了问题:

     

    sed -i “s/aaa/111/g” test.txt 
    

    这条语句在linux平台下可以正常运行。但是在mac下运行会报错。
    如下:

     

    ➜  practice sed -i "s/aaa/bbb/g"  test.txt
    sed: 1: "test.txt": undefined label 'est.txt'
    
    

    查看sed命令:

     

      man sed
    ............
    
         -i extension
                 Edit files in-place, saving backups with the specified extension.  If a zero-length extension is given, no backup will be saved.  It is not recom-
                 mended to give a zero-length extension when in-place editing files, as you risk corruption or partial content in situations where disk space is
                 exhausted, etc.
    

    从上面的解释可得出,-i 需要并且必须带一个字符串,用来备份源文件,并且这个字符串将会加在源文件名后面,构成备份文件名。
    所以在mac下正确使用方式是这样的:

     

    ➜  practice sed -i ""  "s/aaa/bbb/g"  test.txt
    ➜  practice
    

    另外,如果不想用-i参数,那么用如下的方法也可以实现

     

    ➜  practice sed   "s/bbb/aaa/g"  test.txt  > test2.txt
    ➜  practice mv test2.txt test.txt
    ➜  practice
    

    sed -i 的问题解决了,接下来就是实现某个文件夹的批量替换,实现的代码如下:

     

    在当前目录下,将所有aaaModule都替换为bbbName
    grep -rl 'aaaModule' ./  | xargs sed -i "" "s/aaaModule/bbbName/g"
    
    -r 表示搜索子目录
    -l 表示输出匹配的文件名
    



    作者:caoxinyiyi
    链接:https://www.jianshu.com/p/1ce63cb06c55
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    展开全文
  • 替换其中的字符串,很麻烦。 这个时候有了shell,简直强大到爆炸! # du -h user.sql 304M user.sql # sed -i "s/tf_user/tf_user_index/g" user.sql 修改大文件中的tf_user 为 tf_user_index 轻松搞定!!!...

    有些大文件,特别的大。有几百兆,甚至更大。
    用文本编辑器打开十分的费劲,电脑都卡死了。

    想替换其中的字符串,很麻烦。

    这个时候有了shell,简直强大到爆炸!

    # du -h user.sql 
    304M    user.sql
    # sed -i "s/tf_user/tf_user_index/g" user.sql 

    修改大文件中的tf_user 为 tf_user_index

    轻松搞定!!!

    sed 威武,shell 威武。

    转载于:https://www.cnblogs.com/jiqing9006/p/10135638.html

    展开全文
  • Shell 通过sed替换文件字符串

    千次阅读 2019-03-19 17:41:53
    sed's/原字符串/替换字符串/' 1.如果有单引号就把最外层的单...2.如果字符串中有/ 就把分割符从/改成# sed -i "" "s#http:/ /www.baidu.com/scm#ssh://git@git.baidu.sh:7999#g" PodConfig.rb 3.匹配关键字 g ...
  • Sed替换删除添加字符串

    千次阅读 2017-10-09 15:19:48
    替换文本# 替换当前目录下所有文本文件中,hello为world。i就地修改 sed -i 's/hello/world' *.txt# 替换包含hello的文本为hi, r递归,l列出文件目录 sed -i "s/hello/hi/g" `grep "hello" -rl ./`删除文本行# 删除...
  •  /usr/xpg4/bin/sed 's/$sourcename/$destinationname/g' $line > $line.tmp && mv $line.tmp $line  echo "[$line] Replace $sourcename to $destinationname is completed successfully." >> $LOGFILE done $...
  • sed替换所有文件中字符串

    千次阅读 2019-07-09 20:09:50
    查找文件夹下包含字符串...vim替换单个文件中所有字符串方法 例:替换当前文件中所有old为new :%s/old/new/g #%表示替换说有行,g表示替换一行所有匹配点。 替换文件夹下包含字符串文件 sed结合grep 例:...
  • sed -i :直接修改读取的文件内容,而不是输出到终端。...替换文件中所有出现过的字符串 sed -i 's/查找的字符串/替换的字符串/g' 文件 例如,将文件GAOWEILIUSHI_201809_084的|全部替换为|| se...
  • s/a/b/表示查找a并替换为b,后面跟/g表示文件中所有的a都替换成b grep -r 表示查找所有子目录 -w 表示完全匹配 -l 表示仅列出符合条件的文件名,用来传给sed命令做操作 * 表示要查找的根目录为当前目录 ...
  • 替换指定路径文件字符串内容 sed s/原字符串正则/新字符串正则/g 文件名路径(可相对、也可绝对路径) 使用grep替换所在目录下的字符串内容 # linux下 i指备份 sed -i '.bak' s/原字符串正则/新字符串正则/g `...
  • 替换字符串,我们需要使用以下格式。 $ sed s/替换的目标字符串/替换后的字符串/ 文件名 ...注意,sed命令仅替换字符串并输出它,但不会重写实际文件的内容 如果要将替换的内容保存在文本,请使用重定向“>”。 s
  • sed 命令,批量替换多个文件字符串信息 -i 就地替换文件中的内容,如果想直接替换,一定要使用此参数。 命令格式:sed -i 's/sourceStr/destStr/g' sourceStr——被替换的字符串 destStr——替换的新字符...
  • /g'即可对输入字符串进行转义 场景 sed命令常常被用来对文本做处理,其中一个最经常用到的处理就是替换替换的语法如下: echo $STRING | sed -e 's/<match_pattern>/<replace_pattern>/g' 当然也...
  • shell:12、sed文件字符串替换 本操作方法应用于更新配置文件,如树莓派源替换脚本。 将myfile文件每行第一次出现的字符串oldstr用字符串newstr替换,然后将该文件输出到标准输出。 sed -e 's/oldstr/newstr/' ...
  • 在linux服务器,单独文件或批量进行替换文件中某个字符串。 命令格式 sed -i "s/old/new/g" `grep old -rl path` old是待被替换的字符串,new是待替换old的新字符串,grep操作主要是按照所给的路径查找old,...
  • Shell脚本执行hive语句 | hive以日期建立分区表 | linux schedule程序 | sed替换文件字符串 | shell判断hdfs文件目录是否存在
  • 1、将当前目录下包含hello串的文件中,hello字符串替换为hi sed -i "s/hello/hi/g" `grep "hello" -rl ./` 2、将某个文件中的hello字符串替换为hi sed -i "s/hello/hi/g" test.txt 3、删除行首空格 sed -i...
  • sed命令替换字符串

    2020-01-07 14:29:07
    使用sed命令可以直接替换文件中字符串,在应用比较普遍 替换字符串的一般格式为: sed 's/aaa/bbb/g' 其中s表示替换filename文件每行的第一个匹配到的字符串,如果要替换前三行匹配到的字符串,可以修改成...
  • Linux使用sed命令替换字符串 文本替换:sed ‘s#原字符串#新字符串#g’ file ...sed -i ‘s/原字符串/替换字符串/g’ filename ####替换文件中的所有匹配项 sed ‘s/^/添加的头部&/g’ ####在所有行首添加
  • 当你在使用文本文件时,很可能需要查找和替换文件中字符串sed 命令主要用于替换一个文件的文本。在 Linux 这可以通过使用 sed 命令来完成。 sed 命令是什么 sed 命令表示 Stream Editor(流编辑器),用来在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,179
精华内容 14,871
关键字:

sed替换文件中字符串