在排序剩下的文件时忽略文件的前5行我遇到了麻烦。我当前的命令按第二项对整个文件进行排序,但是我需要跳过前5个“标题”行。我需要阅读它并将其写入同一个文件。
当前命令
sort -f -t $ -k2n,2 -o /folder/File.txt /folder/File.txt
实施例
2016/07/07 15:41:02
@24921
@
@
@-1
b$1$4$...
a$2$5$...
答案 0 :(得分:6)
这会对文件的第6行和第5行进行排序,同时保持前5行不变:
{ head -n5 file.txt; tail -n+6 file.txt | sort -ft$ -k2n,2; } >file.tmp && mv file.tmp file.txt
与bash
,ksh
和zsh
不同,tcsh
不支持使用{...}
进行命令分组。而是尝试子shell:
( head -n5 file.txt; tail -n+6 file.txt | sort -ft$ -k2n,2 ) >file.tmp && mv file.tmp file.txt
答案 1 :(得分:1)
解决方案:
head.tmp
和tail.tmp
。 tail.tmp
并将head.tmp
与排序结果连接起来。在提示符处:
$ sed -n -e '1,5w head.tmp' -e '6,$w tail.tmp' data.in
$ sort tail.tmp | cat head.tmp - >data.new