You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用sort命令将cat输出与已有文件合并为单行Shell命令?

合并并排序两个文件的单行bash命令解决方案

正确的单行命令

有两种简洁的实现方式:

  1. 使用进程替换(推荐,无需临时内容)
    利用bash的进程替换特性,将cut处理后的内容作为虚拟文件传递给sort,直接合并两个输入并排序输出到result:

    sort -o result anotherFile <(cut -f 1,2 ./myFile)
    
  2. 先拼接内容再排序
    通过子shell拼接两个文件的内容(myFile先经cut处理),再通过管道传给sort写入结果文件:

    (cat anotherFile; cut -f 1,2 ./myFile) | sort -o result
    

你之前命令无效的原因

你尝试的xargs用法存在本质问题:

cat ./myFile | cut -f 1,2 | xargs -I sort -m anotherFile {} > finalFile

xargs -I {}会把管道传来的文本内容直接替换到{}位置,但sort -m要求参数是已存在的文件路径,这里{}是cut输出的文本,并非文件,所以sort无法识别,导致命令失败。

内容的提问来源于stack exchange,提问作者N. J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 22:00:58