Questions tagged «tee»

tee是一个命令行实用程序,可读取标准输入并写入标准输出以及指定为参数的文件。使用此标记可解决有关tee命令的问题。


3
`:w!sudo tee%`如何工作
如果您打开了没有权限在vim中写入的文件,然后决定需要对其进行更改,那么您就可以编写更改而无需退出vim,:w !sudo tee % 这是因为我不知道该如何工作。可以请你解剖一下吗? 我了解这一:w部分,它假定将已经存在的文件名与当前缓冲区关联,它将当前缓冲区写入磁盘,对吗? 我也了解!哪个执行sudo tee命令并%代表当前缓冲区内容,对吗? 但是仍然不了解它是如何工作的。
27 vim  sudo  tee 


2
如何终止Linux tee命令而不杀死它从其接收的应用程序
我有一个bash脚本,只要Linux机器通电就可以运行。我按如下所示启动它: ( /mnt/apps/start.sh 2>&1 | tee /tmp/nginx/debug_log.log ) & 启动后,我可以在ps输出中看到tee命令,如下所示: $ ps | grep tee 418 root 0:02 tee /tmp/nginx/debug_log.log 3557 root 0:00 grep tee 我有一个功能可以监视tee生成的日志的大小,并在日志达到一定大小时杀死tee命令: monitor_debug_log_size() { ## Monitor the file size of the debug log to make sure it does not get too big while true; do cecho …
19 linux  scripting  pipe  kill  tee 

4
输出到stdout并同时grep到文件中
我有一个将文本输出到的脚本stdout。我想在终端中看到所有这些输出,同时我想过滤一些行并将其保存在文件中。例: $ myscript Line A Line B Line C $ myscript | grep -P 'A|C' > out.file $ cat out.file Line A Line C 我想在终端中查看第一个命令的输出,并将第二个命令的输出保存在文件中。同时。我尝试使用tee,但没有结果,或者更好,结果相反。
18 grep  pipe  stdout  tee 

3
tee + cat:多次使用输出,然后合并结果
例如,如果我调用某个命令,则echo可以在中使用该命令的结果在其他多个命令中tee。例: echo "Hello world!" | tee >(command1) >(command2) >(command3) 使用cat我可以收集几个命令的结果。例: cat <(command1) <(command2) <(command3) 我希望能够同时做这两种事情,这样我就可以tee在其他输出(例如,echo我编写的输出)上调用这些命令,然后使用以下命令将所有结果收集到一个输出中cat。 保持结果为了这一点很重要,这意味着输出的线路command1,command2并且command3不应该纠缠在一起,但订购的命令是(因为它与发生cat)。 可能有比cat和更好的选择,tee但是到目前为止,这些是我所知道的。 我想避免使用临时文件,因为输入和输出的大小可能很大。 我该怎么办? PD:另一个问题是这种情况是循环发生的,这使得处理临时文件更加困难。这是我目前拥有的代码,适用于小型测试用例,但是当以我不理解的方式从auxfile读取和写入时,它会创建无限循环。 somefunction() { if [ $1 -eq 1 ] then echo "Hello world!" else somefunction $(( $1 - 1 )) > auxfile cat <(command1 < auxfile) \ <(command2 < auxfile) \ …
18 pipe  cat  tee  concurrency 

3
将stdout开到stderr吗?
我想将stdout从一个进程发送到另一个进程的stdin,而且还发送到控制台。例如,将stdout发送到stdout + stderr。 例如,我git edit别名如下: git status --short | cut -b4- | xargs gvim --remote 我希望将文件名列表也发送到屏幕xargs。 那么,有没有类似tee的工具可以做到这一点?这样我可以做类似的事情: git status --short | \ cut -b4- | almost-but-not-quite-entirely-unlike-tee | \ xargs gvim --remote

2
`tee`命令
tee可以将管道标准输入重定向到标准输出和文件。 echo Hello, World! | tee greeting.txt 上面的命令将在终端屏幕上显示问候语,并将其保存在greeting.txt文件内容中,如果该名称中没有该问候语,则创建该文件。 还有一个-a开关,tee用于附加到现有文件而不是覆盖。 是否有一种方便的方法将管道输入重定向到命令和标准输出而不是文件? 我正在尝试创建一个包装器脚本,buku以将由其索引号指定的书签的URL复制到主选择中。 # bukuc: #!/bin/sh url=$(buku -f 1 -p $1 | cut -f 2) # NUMBER : URL echo $url # DISPLAY echo $url | xsel # PRIMARY SELECTION 在这里,我使用echo 了两次,第一次用于在终端上显示,然后保存在主选择中(剪贴板)。 我想象echo $url | teeC xsel在传递给下一个命令(链接命令)之前显示输出的某种东西或捷径,这将使我可以将整个命令链接成一行,而无需将结果保存到变量中,如下所示: buku -f 1 -p $1 …

3
直接输出到管道和标准输出
我想知道是否可以通过管道将命令的输出定向到标准输出。因此,例如,fortune打印一个幸运饼干并将其复制到剪贴板: $ fortune | tee >(?stdout?) | pbcopy "...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and the Ugly)." (By Matt Welsh)
14 bash  pipe  stdout  tee 

3
我如何使用tee重定向到grep
我没有使用tee的丰富经验,所以我希望这不是很基本。 查看此问题的答案之一后,我遇到了一个奇怪的行为tee。 为了输出第一行和找到的行,我可以使用以下命令: ps aux | tee >(head -n1) | grep syslog USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND syslog 806 0.0 0.0 34600 824 ? Sl Sep07 0:00 rsyslogd -c4 但是,我第一次运行此命令(在zsh中)时,结果顺序错误,列标题位于grep结果的下方(但是,此操作不再发生),因此我尝试在以下位置交换命令: ps aux | tee >(grep syslog) | head -n1 USER PID %CPU %MEM VSZ …


2
三通会减慢管道的速度吗?
我想知道三通是否会减慢管道的速度。毕竟,将数据写入磁盘要比沿管道传输数据慢。 tee是否等待将数据发送到下一个管道,直到将其写入磁盘?(如果没有,我想Tee必须将已发送但未写入磁盘的数据排队,这对我来说似乎不太可能。) $ program1 input.txt | tee intermediate-file.txt | program2 ...
10 pipe  tee 

2
根据grep regex重定向输出
我gradle run用来启动REST服务器。REST服务器的输出如下所示: XXX.XXX.XX.XXX - <moreinfo> randomtext randomtext XXX.XXX.XX.XXX - <moreinfo> XXX.XXX.XX.XXX - <moreinfo> randomtext XXX.XXX.XX.XXX - <moreinfo> XXX.XXX.XX.XXX这是IP地址,randomtext是错误消息。不幸的是,所有输出都定向到stdout。 如何将以IP地址开头的所有行定向到一个名为的文件中,err.log并将其他所有行定向到all.log? 不幸的是,gradle run由于它是REST服务器,因此只能启动一次且不能停止。 也许使用tee,grep组合?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.