我正在运行一个输出数字列表的命令。我正在使用 for 循环运行该命令 5 次。对于每个输出,我想将这些数字附加到现有文本文件中的相应行。
命令输出:
# execute_command
20
30
480
50
带循环的命令
for i in {1..5};
# execute_command
带循环的命令输出
20
30
480
50
30
50
60
70
90
20
20
40
40
35
60
70
90
50
40
10
前
这只是我创建的一个文本文件。
cat:
rabbit:
car:
can:
后
我想将命令输出附加到现有的文本文件中。
第一次迭代
cat: 20
rabbit: 30
car: 480
can: 50
第二次迭代
cat: 20, 30
rabbit: 30, 50
car: 480, 60
can: 50, 70
第三次迭代
cat: 20, 30, 90
rabbit: 30, 50, 20
car: 480, 60, 20
can: 50, 70, 40
第四次迭代
cat: 20, 30, 90, 40,
rabbit: 30, 50, 20, 35
car: 480, 60, 20, 60
can: 50, 70, 40, 70
第五次迭代
cat: 20, 30, 90, 40, 90
rabbit: 30, 50, 20, 35, 50
car: 480, 60, 20, 60, 40
can: 50, 70, 40, 70, 10
请帮我。非常感谢!
答案1
这是指针的使用sed
和paste
命令。
您的(包含带有等的base_file
列)有四行。您需要系统地“移动”并粘贴前四行(即命令的输出),直到列表用完。cat:
rabbit:
numbers_list
考虑以下命令:
sed -n '1,4p' numbers_list | paste base_file -
这使:
cat: 20
rabbit: 30
car: 480
can: 50
此输出是您的下一个base_file
.您可以将其放入一个名为的临时文件中nbase_file
:
sed -n '1,4p' numbers_list | paste base_file - >nbase_file
然后
mv nbase_file base_file
现在删除其中的前四行numbers_list
:
sed -i '1,4d' numbers_list
并使用循环重复该过程。
请注意,新项目是按制表符分隔粘贴的。因此,如果您想要逗号作为分隔符,您可能需要使用-d ","
with命令。paste