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脚本代码如何写呢
代码如下:
#!/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
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两个文件里面的内容的主要内容,如果未能解决你的问题,请参考以下文章