私のテキストファイルには、次の行があります。
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 桁の数字である可能性があります。
たとえば、単語メッシュで行を検索し、最後の / で分割し、他のファイルからデータをパイプすることで機能することはわかっていますが、sed または awk を作成することはできません。
よろしく