shell脚本替换A、B两个文件里面的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本替换A、B两个文件里面的内容相关的知识,希望对你有一定的参考价值。

如果更具体一点
A文件内容只有一行(路径是/usr/123.txt), ttttssss
B文件的内容有n行(路径是/tem/456.conf),
只需要将A文件的这一行替换成B文件的第5行,且保留前面的123456789
原来第5行的内容是123456789 aabbccddeeff
替换完成后是123456789 ttttssss
这个完整的linux脚本代码如何写呢

参考技术A 可以使用sed进行操作,先定义一个参数读取A文件中的第一行 LineA=`sed...` 或者是使用cat把内容读取出来,再使用sed的替换方法,将B文件中的第一行替换为$LineA即可。希望有帮助 参考技术B 先读取A文件中那行内容,然后通过awk获取B文件中的第五行内容,替换后重新覆盖写入A文件。
代码如下:
#!/bin/sh
A=/usr/123.txt
B=/tem/456.conf
read line <$A
awk -v a=$line 'NR==5print $1"\t"a' $B >$A追问

             

                             

追答

假设B文件列与列之间是TAB分隔(若是空格分隔,则需要将脚本中的\t都替换为空格)。

方法一:用sed
#!/bin/sh
read line tmp
mv tmp /tem/456.conf

本回答被提问者采纳
参考技术C #!/bin/bash
A=`cat A`
B=`head -n 1 B`
sed -i "s/A/B" B
sed -i "s/B/A" A

(shell脚本)特殊分隔符文本文件导入MongoDB

参考技术A

本篇文章简单介绍如何将文本数据使用shell脚本导入MongoDB。
过程如下:

$str//\'!^\'/\',\' 字符替换,将 !^ 替换为 , ;
< 表示从一个文件读内容;
> 表示将内容写进一个文件,如果该文件不存在,会自动新建该文件,因此该操作会覆盖文件之前内容;
>> 同 > ,追加模式,但是该操作不会覆盖之前文件内容。

该脚本使用awk将数据转为json格式,尝试使用 -F \'!^\' 做为分割符时,数据处理出现丢失,错误的现象,使用 -F \',\' 时,数据无误。
本次处理的文本数据分割符为特殊分割符 !^ ,因此将分隔符替换为 , 。
-vq=\' " \' 设置一个变量 q = " 。
function··· 为数据处理过程,格式化为json。

EOF 之间可以执行mongo的任意操作命令。
此处删除了集合名为 $txt_name 的集合(无论该集合是否存在,该操作不会影响脚本执行)。

mongoimport 将文件数据导入MongoDB,文件可以为 json csv 格式,此处使用的是json文件。

rm -rf file 强制删除文件 file
rm shell 删除文件(夹)的命令
-rf 该参数表示不询问,强制删除,重要文件删除,不推荐使用该参数。

以上是关于shell脚本替换A、B两个文件里面的内容的主要内容,如果未能解决你的问题,请参考以下文章

shell 如何取本本文件中 指定两个字符中间的内容呢?

shell脚本里怎么替换掉某个文件的最后一行的最后一个字符

shell脚本怎样读取文件的值,并赋值给变量

如何在shell脚本中修改添加替换指定文件中的内容

Python脚本批量给文件添加内容

Shel脚本-初步入门之《02 什么是 Shell 脚本》