【发布时间】:2018-02-27 23:34:39
【问题描述】:
我有很多文本文件,例如 File1、File2 和 File3。 . .文件100
例如,每个文件都有相同的标题
>7:1234-5678
line 2
line 3
.
.
每个文件对应一个人,比方说
File1=Juan
File2=Pedro
File3=Carlos
我想要做的是将每个人的名字添加到每个文件的第一行。像这样:
>Juan_7:1234-5678
line 2
line 3
.
.
换句话说: 我有几个文本文件(File1...File100),我有一个包含这些文件名和它们所属的名称(个人)的密钥文件。我想把这些名字(个人)放在每个文件的第一行。现在更有意义了吗?。
我尝试过使用以下代码,但可能是错误的。
#!/bin/bash
File1="Juan"; File2="Pedro"; File3="Carlos"
for i in {1..3}; do
for file in ./*.txt; do
eval datafile="\$File$i"
sed -i -e '1 s/7:/'"$datafile"'_7:/g' ./File"$1".txt
done
done
【问题讨论】:
-
绝对可以,但是可能我速度慢,但是你的问题不是很清楚。这里的用户会帮助你,但不会为你写完整的东西。更好地定义和解释您的需求,然后开始着手处理它。如果您甚至不知道如何开始,我建议您ryanstutorials.net/bash-scripting-tutorial
-
把评论放在问题里,cmets里的代码很难看懂。
-
如果您在 {1..3} 上查看一次,然后再查看文件,您将处理每个文件 3 次...