Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Unix中如何在头部和尾部之间添加换行符?_Unix_Zsh - Fatal编程技术网

在Unix中如何在头部和尾部之间添加换行符?

在Unix中如何在头部和尾部之间添加换行符?,unix,zsh,Unix,Zsh,在下面的Unix命令(我在zsh中)中,为了便于阅读,我希望在长文本文件的头和尾之间出现一个空行 命令如下: cat LongTextFile.txt | tee >(head) >(tail) >/dev/null 我已经知道了 (head; echo; tail) < LongTextFile.txt (head;echo;tail)(头)>(尾)未排序;它们并行运行头和尾同时运行tee正在读取其标准输入并将其分发给这两个进程。因此,没有“他们之间”的概念,我们可

在下面的Unix命令(我在zsh中)中,为了便于阅读,我希望在长文本文件的
之间出现一个空行

命令如下:

cat LongTextFile.txt | tee >(head) >(tail) >/dev/null
我已经知道了

(head; echo; tail) < LongTextFile.txt
(head;echo;tail)

但是我想知道是否可以使用
tee
命令。

给你,这在Zsh中有效:

print -l "$(head LongTextFile.txt)" '' "$(tail LongTextFile.txt)"

给你,这在Zsh中起作用:

print -l "$(head LongTextFile.txt)" '' "$(tail LongTextFile.txt)"

过程替换
>(头)>(尾)
未排序;它们并行运行<代码>头
同时运行
tee
正在读取其标准输入并将其分发给这两个进程。因此,没有“他们之间”的概念,我们可以在其中插入新行

幸运的是,当文件足够长时,
head
有机会在
tail
开始输出任何内容之前完成


如果文件太小以至于头和尾重叠,则可能会得到交错输出或重新排序的输出,具体取决于正在进行的确切缓冲。

进程替换
>(头)>(尾)
;它们并行运行<代码>头和
同时运行
tee
正在读取其标准输入并将其分发给这两个进程。因此,没有“他们之间”的概念,我们可以在其中插入新行

幸运的是,当文件足够长时,
head
有机会在
tail
开始输出任何内容之前完成

如果文件太小以至于头和尾重叠,则可能会得到交错输出或重新排序输出,具体取决于正在进行的确切缓冲。

尝试:

seq 100{s=$(cat);head试试:


seq 100{s=$(cat);head如果你不打算输出到一个文件?为什么要使用tee?@Raman Sailopal我不知道我一定需要。我只是在学习UNIX,想知道管道操作符是否可以用来显示一个长文件的头和尾,中间有一个空行。这似乎是一件简单的事情,但我无法让它工作。两者都
>(head)
>(tail)
是异步执行的。不能保证(尽管很可能)您甚至会首先得到
头的输出。请注意
(头;回波;尾)
也不是绝对安全的,因为
head
会消耗比它需要输出的更多的输入行,可能会消耗你想要的
tail
输入。@RamanSailopal,因为
tee
不仅仅输出到一个文件;它输出到一个或多个文件,这些文件可以有效地被Bash进程替换。如果你我们不打算输出到文件?为什么要使用tee?@Raman Sailopal我不知道我必须这样做。我只是在学习UNIX,想知道管道操作符是否可以用来显示长文件的开头和结尾,中间有一个空行。这似乎很简单,但我无法让它工作。两者都
>(head)
>(tail)
是异步执行的。不能保证(尽管很可能)您甚至会首先得到
头的输出。请注意
(头;回波;尾)
也不是绝对安全的,因为
head
会消耗比它需要输出的更多的输入行,可能会消耗你想要的
tail
输入。@RamanSailopal,因为
tee
不仅仅输出到一个文件;它输出到一个或多个文件,这些文件可以有效地被Bash进程替换。@MarionR我非常感谢您的回答,但我一直在寻找一个使用管道的命令。@mark cowan为什么?我只是在学习UNIX,正在测试管道操作符可以做什么。我已经记下了您的替代解决方案供将来参考。谢谢。@MarionRichert感谢您的回答,但我正在寻找一个使用管道的命令@mark cowan为什么?我只是在学习UNIX,正在测试管道操作员可以做什么。我已经记下了您的替代解决方案,以供将来参考。谢谢。这并不是问题的答案。若要评论或要求作者澄清,请在他们的帖子下方留下评论。-这不提供answe回答问题。若要评论或要求作者澄清,请在其帖子下方留下评论-