linux - 如何对多个文件进行排序? Unix

标签 linux bash shell unix sorting

<分区>

通常我可以这样做来对文本文件进行排序:

cat infile.txt | sort > outfile.out
mv outfile.out > infile.txt

我也可以循环执行:

for inp in ./*; do
    fname=${inp##*/}
    cat "$inp" | sort  > ./"$fname".out
done

除了写一个循环之外,是否有一个行可以为终端中的所有文件执行上述操作?

最佳答案

这让我觉得这是一个荒谬的练习,因为循环没有任何问题,但你可以这样做:

ls | xargs -n 1 sh -c 'sort $1 > $1.tmp; mv $1.tmp $1' sh

关于linux - 如何对多个文件进行排序? Unix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15339214/

相关文章:

linux - awk - 括号检查

linux - Crontab 无法正常工作

linux - 设备如何通过数据链路层 2 交换数据?

linux - bash 脚本从上次失败的地方执行

用于折叠表格数据以形成非冗余列的 Shell 命令

linux - 使用 exec 函数时如何使用 gdb 进行调试

linux - 如何在标准输出中使用 'patch' 命令?

linux - 如何使用下一个单词前没有空格的变量?

bash - 在 Bash 中将定界字符串解析为数组 - 为什么 "$var"与 $var 不同,尽管 $var 没有空格?

shell - 如何使用 shell 文件将参数传递给 docker-compose.yml