linux - 使用基本的 ubuntu shell 命令将单行文本合并到数据框中
问题描述
我有两个文件Input1.txt
和Input2.txt
. 它们中的每一个都是一个文本文件,其中包含由制表符分隔的 5 个数字的单行。
例如Input1.txt
是
1 2 3 4 5
并且Input2.txt
是
6 7 8 9 10
我想要的输出是Output.txt
:
Input1 1 2 3 4 5
Input2 6 7 8 9 10
所以我想将表中的文件与包含原始文件名称的额外第一列合并。显然我有超过 2 个文件(实际上是 1000 个),我想用一个 for 循环来制作它。您可以假设我的所有文件都命名为 Input*.txt,其中 * 介于 1 和 1000 之间,并且它们都在同一个目录中。
我知道如何用 R 来做,但我想用 ubuntu shell 中的基本命令行来做。可行吗?谢谢你的帮助。
解决方案
假设Input1.txt
,Input2.txt
等中的行以换行符终止,您可以使用
for i in Input*.txt
do
printf "%s " "$i"
cat "$i"
done > Output.txt
结果是
Input1.txt 1 2 3 4 5
Input2.txt 6 7 8 9 10
如果你想在Input1
没有你的情况下得到等,.txt
你可以使用
printf "%s " "${i%.txt}"
推荐阅读
- php - 使用 ajax 和 php 上传和提取 zip 文件
- java - 从 unix 调用 Java Jar,某些特殊字符未正确打印
- javascript - 如果事件对象没有传递给回调,那么 addEventListener 中的 Event 对象来自哪里?
- c# - 有没有办法锁定评论?VS 2017
- amazon-web-services - 无效重定向:域必须添加到授权域列表中,尽管它在那里
- single-page-application - 在单页 webapps 上更新 service worker
- .net - 在 PowerShell 中按名称调用带有可选参数的 .NET 方法
- python - django-tenant-schema 为所有租户启用管理模块
- java - CommandLineRunner 的 Spring 自动装配问题
- reactjs - 打字稿逻辑 d.ts 位于