如何用sort命令将cat输出与已有文件合并为单行Shell命令?
合并并排序两个文件的单行bash命令解决方案
正确的单行命令
有两种简洁的实现方式:
使用进程替换(推荐,无需临时内容)
利用bash的进程替换特性,将cut处理后的内容作为虚拟文件传递给sort,直接合并两个输入并排序输出到result:sort -o result anotherFile <(cut -f 1,2 ./myFile)先拼接内容再排序
通过子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
相关产品推荐
相关产品推荐

