我有很多相应的.txt文件。我想在第一个.txt文件(text1.txt)中识别特定字符":"
,然后用另一个.txt文件中的相应行替换它(以及text1.txt中的其余行)。 text2.txt)。我还想在复制的值之前添加一个额外的字符"*"
。
text1.txt看起来像这样:
*
10.04:60.429
*
*
*
12.023:60.078
*
9.033:60.045
*
9.023:60.062
*
*
和text2.txt看起来像这样:
*
11
*
*
*
4
*
10
*
9
*
*
输出应如下所示:
*
10.04*11
*
*
*
12.023*4
*
9.033*10
*
9.023*9
*
*
有关使用sed执行此操作的最佳方法的任何想法吗?
答案 0 :(得分:0)
awk
脚本应该
awk 'BEGIN{i=1;j=1}
NR==FNR{text1[i++]=$0;next}
/:/{gsub(/:[^:]*/,"*" text1[j],$0)}
#Note :[^:] looks for the last occurence of : in text1 strings
{j++}1' text2.txt text1.txt
<强>结果强>
*
10.04*11
*
*
*
12.023*4
*
9.033*10
*
9.023*9
*
*