2

我想将从文件中获取的一些数据写入文件的最后一行(而不是新行)。我正在使用以下脚本。

#!/bin/bash
echo "Write the start and end file number:"
read sta end 
echo "$sta" "$end"

for (( c="$sta"; c<="$end"; c++ ))
do
   cp AnalyzeClusterParameterFile AnalyzeClusterParameterFile$c
   awk '{if (NR== '$c' -10){print $1 " " $2 " " $3}}' center.dat >>  AnalyzeClusterParameterFile$c 

done

但它(AnalyzeClusterParameterFile$c 文件)会像这样换行

里纳 = 0.1 !在 MPC 中

路由器 = 5!在 MPC 中

NumberOfPoints = 50 !默认为 16

维里密度 = 200 !默认为 200

中心列表名称 =

5.044627347e-01 5.008533222e-01 5.043365095e-01

我真正想要的(AnalyzeClusterParameterFile$c 文件)是

里纳 = 0.1 !在 MPC 中

路由器 = 5!在 MPC 中

NumberOfPoints = 50 !默认为 16

维里密度 = 200 !默认为 200

中心列表名称 = 5.044627347e-01 5.008533222e-01 5.043365095e-01

4

2 回答 2

1

您可以使用 sed 修改该行。

catcenter.dat

sed -i "/CenterListName/ s/=$/= $(cat center.dat)/" AnalyzeClusterParameterFile$c

首先读取该值并使用 sed 将其添加到第二个文件中。

于 2013-07-17T12:41:12.877 回答
1

这可能是由于AnalyzeClusterParameterFile. 您可以通过将cp命令替换为:

head -c -1 AnalyzeClusterParameterFile > AnalyzeClusterParameterFile$c

请注意,这会杀死任何尾随字符,而不仅仅是换行符!

于 2013-07-17T12:43:08.743 回答