sort
没有排除标题的选项。您可以使用以下方法删除标题:
tail -n+2 yourfile | sort
Run Code Online (Sandbox Code Playgroud)
此尾部语法yourfile
从第二行到文件末尾。
当然,结果sort
将不包括标题。
您可以使用命令隔离标题,该命令head -n1 yourfile
将仅打印文件的第一行(您的标题)。
要将它们组合在一起,您可以运行:
head -n1 yourfile && tail -n+2 yourfile | sort
Run Code Online (Sandbox Code Playgroud)
我假设您想保留标题:将文件的内容重定向到分组结构中:
{
# grab the header and print it untouched
IFS= read -r header
echo "$header"
# now process the rest of the input
sort
} < file.csv
Run Code Online (Sandbox Code Playgroud)
使用 csvkit
:
$ csvsort -c 1 file.csv
Run Code Online (Sandbox Code Playgroud)
要不就
$ csvsort file.csv
Run Code Online (Sandbox Code Playgroud)
不同之处在于,第一个命令将仅使用第一列,而第二个命令将使用全部(就像sort
这样做)。
该csvkit
工具假定输入 CSV 文件的第一行有标题行。-H
如果文件没有标题,则使用。