在Linux中,如何将两个控制台命令的输出合并到一个文本文件中?

在Linux中,如何将两个控制台命令的输出合并到一个文本文件中?,linux,Linux,我将获得csv的第一行和最后10000行,如下所示: head workrace.csv -n 1 tail workrace.csv -n 10000 如何将输出合并到单个文本文件中?我可以将上述命令通过管道传输到两个单独的文本文件中,然后连接这些文件。有没有一种不需要使用中间文本文件就可以执行此操作的方法?您可以在子shell中运行这两个命令: ( head workrace.csv -n 1 ; tail workrace.csv -n 10000 ) > result.txt

我将获得csv的第一行和最后10000行,如下所示:

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

您可以在子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
F=workrace.c
{head-n1$F;tail-n1000$F;}>result.txt#无子shell
awk'NR==1 | | NR>k-1000'k=“$(wc-l<$F)”$F>result.txt
exec>result.txt#截断result.txt并将剩余命令直接输出到它
总目-n 1$F
尾部-n 10000美元F

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
F=workrace.c
{head-n1$F;tail-n1000$F;}>result.txt#无子shell
awk'NR==1 | | NR>k-1000'k=“$(wc-l<$F)”$F>result.txt
exec>result.txt#截断result.txt并将剩余命令直接输出到它
总目-n 1$F
尾部-n 10000美元F

不能将命令通过管道传输到文件。可以将命令的输出重定向到文件,也可以通过管道将输出重定向到另一个进程,但不能通过管道将输出重定向到文件。只能将输出管道化到管道。(从技术上讲,管道是一个文件,但不能将输出管道化到常规文件。)不能将命令管道化到文件。可以将命令的输出重定向到文件,也可以通过管道将输出重定向到另一个进程,但不能通过管道将输出重定向到文件。只能将输出管道化到管道。(从技术上讲,管道是一个文件,但不能将输出管道化为常规文件。)