linux - 如何在循环中连接两个带有标识符的文件?

标签 linux bash shell unix awk

我有 200 个文件:cool1.txt、cool2.txt、...、cool100.txt 和 warm1.txt、warm2.txt、...、warm100.txt。

所有文件都有 2 列数据。

我想按如下方式连接 200 个文件以获得 coolwarm1.txt ,coolwarm2.txt,coolwarm100.txt

cat cool1.txt warm1.txt > coolwarm1.txt
cat cool2.txt warm2.txt > coolwarm2.txt
...
cat cool100.txt warm100.txt > coolwarm100.txt

在coolwarm*.txt的每个文件中,我喜欢在连接后添加一个标识符“cool”和“warm”。

例如,coolwarm1.txt 看起来像这样

Input 
    cool1.txt 

    S44298 33307
    S46800 32286
    S55145 29361

    warm1.txt
    S10253 27473
    S24395 33093

Desired output for coolwarm1.txt

S44298 33307 cool
S46800 32286 cool
S55145 29361 cool
S10253 27473 warm
S24395 33093 warm

awk '{print FILENAME, $0}' cool1.txt warm1.txt > coolwarm1.txt 会给出 接近我想要的,但我无法进一步管理。

非常感谢您的帮助。

最佳答案

for n in `seq 1 100`; do cat cool$n.txt | awk '{print $0 " cool"}' > coolwarm$n.txt; cat warm$n.txt | awk '{print $0 " warm"}' >> coolwarm$n.txt; done

关于linux - 如何在循环中连接两个带有标识符的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471311/

相关文章:

bash - 删除目录下文件下划线

bash - 过滤包含 bash 内容的 block (带标题)

python - 如何在 Python 中链接多个命令行响应?

javascript - 检查进程 A 写入的文件是否准备好被进程 B 读取

java - find 命令不适用于 java,但适用于系统 shell

linux - 在 Linux 中从 CLI 运行 Visual Studio Code

linux - Gnu 排序 : stray characters in field specification

linux - 我如何检测 Perl 中的符号链接(symbolic link)已损坏?

bash - awk 排序多维数组

java - 使用不带服务器名的 LDAP 从 Java (Linux) 向 Active Directory 进行身份验证