如何在 Unix 中的头和尾之间添加换行符?
How can I add a newline in between head and tail in Unix?
在下面的 Unix 命令中(我在 zsh 中),为了便于阅读,我希望在长文本文件的 head
和 tail
之间出现一个空行。
命令如下:
cat LongTextFile.txt | tee >(head) >(tail) >/dev/null
我已经知道了
(head; echo; tail) < LongTextFile.txt
但我想知道是否可以使用 tee
命令。
给你,这在 Zsh 中有效:
print -l "$(head LongTextFile.txt)" '' "$(tail LongTextFile.txt)"
进程替换 >(head) >(tail)
未排序;他们 运行 并行。 head
和 tail
同时 运行ning。 tee
正在读取其标准输入并将其分发给这两个进程。所以不存在我们可以插入换行符的“它们之间”的概念。
你很幸运,当文件足够长时,head
有机会在 tail
开始输出任何内容之前完成。
如果文件太小以至于 head
和 tail
重叠,您可能会得到交错输出或重新排序的输出,具体取决于正在进行的确切缓冲。
尝试:
seq 100 | { s=$(cat); head <<<$s; echo; tail <<<$s; }
在下面的 Unix 命令中(我在 zsh 中),为了便于阅读,我希望在长文本文件的 head
和 tail
之间出现一个空行。
命令如下:
cat LongTextFile.txt | tee >(head) >(tail) >/dev/null
我已经知道了
(head; echo; tail) < LongTextFile.txt
但我想知道是否可以使用 tee
命令。
给你,这在 Zsh 中有效:
print -l "$(head LongTextFile.txt)" '' "$(tail LongTextFile.txt)"
进程替换 >(head) >(tail)
未排序;他们 运行 并行。 head
和 tail
同时 运行ning。 tee
正在读取其标准输入并将其分发给这两个进程。所以不存在我们可以插入换行符的“它们之间”的概念。
你很幸运,当文件足够长时,head
有机会在 tail
开始输出任何内容之前完成。
如果文件太小以至于 head
和 tail
重叠,您可能会得到交错输出或重新排序的输出,具体取决于正在进行的确切缓冲。
尝试:
seq 100 | { s=$(cat); head <<<$s; echo; tail <<<$s; }