0
我获得第一行和最后1万行的csv如下:在Linux中,如何将两个控制台命令的输出合并到一个文本文件中?
head workrace.csv -n 1
tail workrace.csv -n 10000
如何合并输出到一个单一的文本文件?我可以将上述命令输入到两个单独的文本文件中,然后连接文件。有没有办法做到这一点,而不需要使用中介文本文件?
我获得第一行和最后1万行的csv如下:在Linux中,如何将两个控制台命令的输出合并到一个文本文件中?
head workrace.csv -n 1
tail workrace.csv -n 10000
如何合并输出到一个单一的文本文件?我可以将上述命令输入到两个单独的文本文件中,然后连接文件。有没有办法做到这一点,而不需要使用中介文本文件?
您可以运行在一个子shell这两个命令:
(head workrace.csv -n 1 ; tail workrace.csv -n 10000) > result.txt
,或者您可以使用>>
重定向操作符的内容添加到文件:
head workrace.csv -n 1 > result.txt
tail workrace.csv -n 10000 >> result.txt
没有提到一些其他的选择choroba:
F=workrace.c
{ head -n 1 $F; tail -n 10000 $F; } > result.txt # no subshell
awk 'NR==1 || NR>k-1000' k="$(wc -l < $F)" $F > result.txt
exec > result.txt # truncate result.txt and direct output of remaining commands to it
head -n 1 $F
tail -n 10000 $F
您无法将命令传送到文件。您可以将命令的输出重定向到文件,也可以将输出传送到另一个进程,但不能将输出传送到文件。您只能将输出管道输送到管道。 (从技术上讲,管道是一个文件,但不能将输出管道输送到常规文件。) – 2013-04-08 04:45:58