在我的文本文件中,我有以下几行。
input.k
有
2684717 -194.7050476 64.2345581 150.6500092 0 0
2684718 -213.1575623 62.7032242 150.6500092 0 0
*INCLUDE
$# filename
./meshes/exportneu/147.k
*END
和
mesh.k
有
100
我想将 input.k 中的 147.k 替换为另一个数字,形成另一个文件,即 mesh.k 中的 100
所需输出
2684717 -194.7050476 64.2345581 150.6500092 0 0
2684718 -213.1575623 62.7032242 150.6500092 0 0
*INCLUDE
$# filename
../meshes/exportneu/100.k
*END
我用了
sed '/\<meshes\>/!d;=;s/.* ([^ ]\+).*/\1/;R mesh.k' input.k |
sed 'N;N;s|\n|s/|;s|\n|/|;s|$|/|;q' >temp.sed
sed -i -f temp.sed input.k
关键是我想将这个 147.k 替换为 100.k ,其中 100 写在另一个文件 mesh.k 中,就像在另一个文件中只有 100 存在或者它可以是 3 位数的任何其他数字。
我知道它可以用于搜索带有单词网格的行,并用 last / 分割并管道来自其他文件的数据,但我无法制定 sed 或 awk。
问候