![](/img/trans.png)
[英]bash script - seeking advice on extracting columns from csv file and how to skip to next line in current while loop
[英]Bash script: how to skip a header line when sorting a text or csv file, while retaining it in the output
(改编自: 加入手册,Header 行)。
我正在使用以下内容对名为 file1 的文件进行排序:
Name Age
Charlie 34
Alice 25
如果我只是写:
sort -k2b,2 file1
我得到:
Alice 25
Charlie 34
Name Age
我可以像这样从排序中排除 header:
head -1 file1;(sed -n '2,$p' file1|sort -k2b,2)
但是 gnu 手册中的示例是这样的:
( sed -u 1q; sort -k2b,2 ) < file1
为什么这样行得通?
我想我会从命令行得到这个:
Name Age
Alice 25
Charlie 34
Name Age
sed 消耗 stdin 的第一行,然后排序消耗 rest?
您可以让 sed 打印 header,然后对 rest 进行排序。
sed -n '1p' file1; sort <(sed '1d' file1)
Name Age
Alice 25
Charlie 34
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.