【发布时间】:2015-05-06 09:03:45
【问题描述】:
我有一个包含 71 行的 .txt 文件,还有另外 12 组文件(file1 到 file12)。我想将 .txt 文件中的前 5 行复制到特定行号的 file1,类似地,将 .txt 文件中的下 5 行复制到特定行号的 file2,依此类推。
这是我当前的代码:
n = 1
sed -i '52,56d' $dumpfile
awk'{print $'"$n"',$'"$n+1"',$'"$n+2"',$'"$n+3"'}' sample.txt > $dumpfile
n=$(($n + 1))
在$dumpfile我已经放了我的12个文件。
示例文件(12 个文件;file1、file2...)
...........
................
..............
abc = 4,1,3
def = 1,2,6
dfg = 28,36,4
tyu = 68,47,6
rty = 65,6,97
文件(sample.txt)
abc = 1,2,3
def = 4,5,6
dfg = 2,3,4
tyu = 8,7,6
rty = 5,6,7
abc = 21,2,32
def = 64,53,6
dfg = 28,3,4
tyu = 18,75,6
rty = 5,63,75
...........
...........
我想将这五行 (file1...file12) 替换为五行 sample.txt 文件。在所有 12 个文件中,file1 到 file12 中要替换的行数相同,其中如 sample.txt 文件中的第一组 5 行将进入 file1,第二组 5 行将进入 file2,依此类推直到 file12 .
【问题讨论】:
-
有很多方法可以做到这一点。但是,这将是一个很好的开始,看看您到目前为止尝试了什么以及您在执行过程中发现了哪些问题。另外,请参阅How do I ask a good question? 以正确询问。
-
split -l 5 input_file将是您最好的选择,尽管您可能被告知使用 awk 作为学习练习。如果是这样的话,我同意@fedorqui,你真的需要自己尝试一下。 -
你能提供一些示例输入和输出吗?
-
示例输入文件 (.txt) abc = 1,2,3 def = 4,5,6 dfg = 2,3,4 tyu = 8,7,6 rty = 5,6,7示例输出文件(12files、file1、file2)...................................................... ........ abc = 4,1,3 def = 1,2,6 dfg = 28,36,4 tyu = 68,47,6 rty = 65,6,97(我不知道如何正确输入)
-
@Helloo 再次,请edit 您的问题显示此输入。我们无法读取 cmets 中的代码