shell脚本命令如何 读取文本指定位置内容 写入另一文本指定位置并替换原内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本命令如何 读取文本指定位置内容 写入另一文本指定位置并替换原内容相关的知识,希望对你有一定的参考价值。

shell脚本命令如何 读取文本指定位置内容 写入另一文本指定位置并替换原内容
比如
a.txt内容
1.396336670E+003 1.389259766E+003 1.382734131E+003 1.378035278E+003
1.367266602E+003 1.362385010E+003 1.359675781E+003 1.359435425E+003
1.366114014E+003 1.373034912E+003 1.380192505E+003 1.388231079E+003
1.403625122E+003 1.412011230E+003 1.420134766E+003 1.428136841E+003
1.443592285E+003 1.450696777E+003 1.457539429E+003 1.463679321E+003
1.474891724E+003 1.480246826E+003 1.485480103E+003 1.490473999E+003
1.499536377E+003 1.503588135E+003 1.506655762E+003 1.508960327E+003
1.523574707E+003 1.526189087E+003 1.531257568E+003 1.534092407E+003

b.txt 内容
*DEFINE x
*DESCRIPTION

*END DESCRIPTION
*PARAMETERS
TYPE NORMAL
MEAN 3.00000
STDEV 1.00000
*END PARAMETERS
*END DEFINE x

我想读取a.txt中的第6行第4列的1.490473999E+003 替换b.txt中的第7行第2列的3.00000,求帮助,多谢!

参考技术A sed -i "s/`cat b.txt |awk 'print $2 '|awk 'NR==6print'`/`cat a.txt |awk 'print $4 '|awk 'NR==6print'`/g" b.txt本回答被提问者采纳

shell脚本之awk工具的使用

在Linux系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被我们运维人员广泛应用于shell脚本,完成各中自动化配置任务。

awk可以直接处理目标文件,也可以和sed命令一样通过“-f”选项读取脚本对目标文件进行处理。

awk的语法格式如下:
技术图片

sed命令常用于整行处理,而awk比较倾向于将一行分成多个字段,awk可以使用逻辑操作符“&&”,表示“与”,“||”表示“或”,“ !”表示“非”;还可以进行简单的数学运算,如+、-、*、/、%、^、分别表示加、减、乘、除、取余、和乘方。
awk包含几个特殊的内建变量(可直接用),如下所示:
技术图片
用法示例:
1)按行输出文本:
技术图片

2)按字段输出文本:
技术图片

3)通过管道、双引号调用shell命令:
技术图片

以上是关于shell脚本命令如何 读取文本指定位置内容 写入另一文本指定位置并替换原内容的主要内容,如果未能解决你的问题,请参考以下文章

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

在Ubuntu下编写shell脚本读取文件

linux shell 如何读取文件特定位置的数据?

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

QT读取文本文件

linux下shell脚本命令