Linux 使用Bash或Perl将一行文本替换为目录中的多个文件
我有一个包含大约9000个文件的目录,所有这些文件都具有相同的结构,如下所示:Linux 使用Bash或Perl将一行文本替换为目录中的多个文件,linux,bash,perl,file,Linux,Bash,Perl,File,我有一个包含大约9000个文件的目录,所有这些文件都具有相同的结构,如下所示: seqfile = brown.nuc * sequence data file name outfile = mlb * main result file treefile = brown.trees * tree structure file name noisy = 3 * 0,1,2,3: how much rubbish on the screen
seqfile = brown.nuc * sequence data file name
outfile = mlb * main result file
treefile = brown.trees * tree structure file name
noisy = 3 * 0,1,2,3: how much rubbish on the screen
verbose = 0 * 1: detailed output, 0: concise output
runmode = 0 * 0: user tree; 1: semi-
automatic; 2: automatic
* 3: StepwiseAddition; (4,5):PerturbationNNI
我想用txt文件列表中包含的单词替换seqfile=brown.nuc行,列表如下
organism_1.fna
organism_2.fna
organism_3.fna
organism_4.fna
organism_5.fna
我想要得到的结果是
seqfile = organism_1.fna * sequence data file name
outfile = mlb * main result file
treefile = brown.trees * tree structure file name
noisy = 3 * 0,1,2,3: how much rubbish on the screen
verbose = 0 * 1: detailed output, 0: concise output
runmode = 0 * 0: user tree; 1: semi-
seqfile = organism_2.fna * sequence data file name
outfile = mlb * main result file
treefile = brown.trees * tree structure file name
noisy = 3 * 0,1,2,3: how much rubbish on the screen
verbose = 0 * 1: detailed output, 0: concise output
runmode = 0 * 0: user tree; 1: semi-
seqfile = organism_2.fna * sequence data file name
outfile = mlb * main result file
treefile = brown.trees * tree structure file name
noisy = 3 * 0,1,2,3: how much rubbish on the screen
verbose = 0 * 1: detailed output, 0: concise output
runmode = 0 * 0: user tree; 1: semi-
我一直在尝试Sed和Awk,但无法获得输出 对于*.ext中的文件;做
用于在$$file.processed中替换;
完成
这会将更改的数据放入$originalFilename.processed中,如果需要,您可以稍后将其复制到原始文件上。请避免向我提出codez问题。而是显示您正在处理的脚本,并说明问题所在。另外,看看你是否可以发布你的Sed或Awk尝试Erick,那太好了-即使它们不起作用,这将给问题提供更多的方向,并帮助读者帮助你。内部循环将迭代每个文件的所有替换。是的,据我所知,这就是OP的目标。所以这是故意的。啊,你是对的,用这种方式来理解这个问题是可能的。考虑到我们得到的数据样本,这些都不是问题。这似乎是一项一次性任务,健壮性并不重要。不过,对于一个可重用的脚本,您是完全正确的。