我在使用以下bash脚本时遇到困难:
基本上,脚本执行的操作是接收目录,然后在目录中的所有文件夹中搜索以.log结尾的文件。之后,它应该将这些文件中的所有行(按其写入日期排序)打印到标准输出。
我的剧本是这样的:
#!/bin/bash
find . -name ".*log" | cat *.log | sort --stable --reverse --key=2,3
当我运行脚本时,它会返回列表,但排序无法正常工作。我的猜测是因为在某些文件中有\ n使其开始新的一行。
是否有一种方法可以忽略文件中的\ n,同时仍使每行返回新行?
xxd命令输出:
ise @ ise-virtual-machine:〜$ xxd /home/ise/Downloads/f1.log 00000000:3230 3139 2d30 382d 3232 5431 333a 3333 2019-08-22T13:33 00000010:3a34 342e 3132 3334 3536 3738 3920 4865:44.123456789他 00000020:6c6c 6f0a 576f 726c 640a 0032 3032 302d llo.World..2020- 00000030:3031 2d30 3154 3131 3a32 323a 3333 2e31 01-01T11:22:33.1 00000040:3233 3435 3637 3839 206c 6174 650a 23456789晚。 ise @ ise-virtual-machine:〜$ xxd /home/ise/Downloads/f2.log 00000000:3230 3139 2d30 392d 3434 5431 333a 3434 2019-09-44T13:44 00000010:3a32 312e 3938 3736 3534 3332 3120 5369:21.987654321 Si 00000020:6d70 6c65 206c 696e 650a mple线。 ise @ ise-virtual-machine:〜$ xxd /home/ise/Downloads/f3.log 00000000:3230 3139 2d30 382d 3232 5431 333a 3333 2019-08-22T13:33 00000010:3a34 342e 3132 3334 3536 3738 3920 4865:44.123456789他 00000020:6c6c 6f0a 576f 726c 6420 320a 0032 3032 llo.World 2..202 00000030:302d 3031 2d30 3154 3131 3a32 323a 3333 0-01-01T11:22:33 00000040:2e31 3233 3435 3637 3839 206c 6174 6520 .123456789晚 00000050:320a 2。