这里的目的是将文件中的第一行复制到最后一行
这里是输入文件
335418.75,2392631.25,36091,38466,1
335418.75,2392643.75,36092,38466,1
335418.75,2392656.25,36093,38466,1
335418.75,2392668.75,36094,38466,1
335418.75,2392681.25,36095,38466,1
335418.75,2392693.75,36096,38466,1
335418.75,2392706.25,36097,38466,1
335418.75,2392718.75,36098,38466,1
335418.75,2392731.25,36099,38466,1
Run Code Online (Sandbox Code Playgroud)
使用以下代码,我得到了所需的输出.还有其他简单的选择吗?
awk 'NR==1 {print}' FF1-1.csv > tmp1
cat FF1-1.csv tmp1
Run Code Online (Sandbox Code Playgroud)
输出所需
335418.75,2392631.25,36091,38466,1
335418.75,2392643.75,36092,38466,1
335418.75,2392656.25,36093,38466,1
335418.75,2392668.75,36094,38466,1
335418.75,2392681.25,36095,38466,1
335418.75,2392693.75,36096,38466,1
335418.75,2392706.25,36097,38466,1
335418.75,2392718.75,36098,38466,1
335418.75,2392731.25,36099,38466,1
335418.75,2392631.25,36091,38466,1
Run Code Online (Sandbox Code Playgroud)
提前致谢.
将线保存在变量中,并使用END块在末尾打印
$ seq 5 | awk 'NR==1{fl=$0} 1; END{print fl}'
1
2
3
4
5
1
Run Code Online (Sandbox Code Playgroud)
head可以产生与您的 相同的输出awk,因此您可以cat改为使用它。
您可以使用进程替换来避免临时文件。
cat FF1-1.csv <(head -n 1 FF1-1.csv)
Run Code Online (Sandbox Code Playgroud)
正如Sundeep所提到的,如果进程替换不可用,您可以简单地cat将文件然后head按顺序获得相同的结果,如果您需要重定向输出,则将两者都放在子shell中:
(cat FF1-1.csv; head -n1 FF1-1.csv) > dest
Run Code Online (Sandbox Code Playgroud)
另一替代方案将是管的输出head,以cat及指其与-其中用于cat表示标准输入:
head -1 FF1-1.csv | cat FF1-1.csv -
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |