标签: pipe

如何将 awk 输出(具有周期性、连续输入)通过管道传输到输出文件?

我正在尝试编写一个命令,该命令将空闲命令的连续输出(每秒运行一次)传送到一个 awk 命令,该命令解析特定值(可用空闲内存)并将其输出到带有时间戳的文件中。这是我目前对命令的尝试:

free -mto -s 1 | awk '/Mem/ { print strftime("%r") "," $4 }' >>memOut
Run Code Online (Sandbox Code Playgroud)

或者,经过一些谷歌搜索

free -mto -s 1 | awk '/Mem/ { print strftime("%r") "," $4 >>"memOut"}'
Run Code Online (Sandbox Code Playgroud)

每次运行都会产生空文件。任何建议或可能不同的方法?

awk pipe

11
推荐指数
2
解决办法
1万
查看次数

Xargs 将输入传递给包含管道的命令

作为了解如何使用管道操作绑定优先级的一种工具,我试图为每个目录打印一个文件的路径:

find $PWD -type d | xargs --delimiter "\n" -I% -n 1 (find % -maxdepth 1 | head -1)
Run Code Online (Sandbox Code Playgroud)

我明白了no matches found: (find % -maxdepth 1 | head -1)。没有括号我会得到xargs: find: terminated by signal 13所以我很确定我们需要以某种方式使管道右关联。

如何将 xargs 输入传递给包含管道的命令?(请不要告诉我使用-exec,我想学习如何操作其他问题的绑定优先级)。

xargs pipe

11
推荐指数
1
解决办法
8507
查看次数

是否可以将文件列表通过管道传输到 Windows 上的 RMDIR?

我正在为 Windows 命令提示符编写一个批处理文件,以删除与某个表达式匹配的所有目录。

我首先使用DIR返回匹配表达式的普通目录列表。我想将每一行输出通过管道传输到 RMDIR 命令中,如下所示:

DIR *.delete /A:D /B /S | RMDIR /S /Q
Run Code Online (Sandbox Code Playgroud)

但是上面的命令似乎不起作用。我不完全理解为什么这不起作用,并且会感谢任何可以提供解释的人。

windows batch command-line dir pipe

10
推荐指数
1
解决办法
1万
查看次数

如何在 bash 脚本中同时获取 PIPESTATUS 和输出

我正在尝试使用此命令获取文件的最后修改日期

TM_LOCAL=`ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }'`
Run Code Online (Sandbox Code Playgroud)

执行此行后,TM_LOCAL 的值类似于“2012-05-16 23:18”

我还想检查 PIPESTATUS 以查看是否有错误。例如,如果文件不存在,则ls返回 2。但$?其值为 0,因为它的返回值为awk

如果我单独运行这个命令,我可以通过查看 ls 的返回值 ${PIPESTATUS[0]}

ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }'
Run Code Online (Sandbox Code Playgroud)

但是$PIPESTATUS,如果我将输出分配给第一个示例中的变量,则不会像我预期的那样工作。在这种情况下,$PIPESTATUS数组只有 1 个元素,与$?

所以,问题是,我怎样才能同时获得两者$PIPESTATUS并将输出分配给一个变量?

bash pipe

10
推荐指数
1
解决办法
1万
查看次数

从视频中提取的 ffmpeg 管道图像

我可以使用以下命令从使用 ffmpeg 的视频中提取图像,并将它们保存到文件系统:

... | ffmpeg -i - -f image2 'img-%03d.png'
Run Code Online (Sandbox Code Playgroud)

我想将这些图像通过管道传输到另一个应用程序,而不是将它们保存到文件系统 - 它们在管道中的分离方式并不重要,因为它将是我自己控制的 NodeJS 脚本。

以下不起作用:

... | ffmpeg -i - -f image2 pipe: | ...
Run Code Online (Sandbox Code Playgroud)

错误与

[image2 @ 0xe1cfc0] Could not get frame filename number 2 from pattern 'pipe:' (either set updatefirst or use a pattern like %03d within the filename pattern)
av_interleaved_write_frame(): Invalid argument
Run Code Online (Sandbox Code Playgroud)

有没有办法在不使用文件系统的情况下使用 ffmpeg 从视频中提取图像?

video linux ffmpeg pipe

10
推荐指数
1
解决办法
8787
查看次数

您如何确定正在输入您的实际命令?

假设我有一个名为 .bash 的 bash 脚本log.sh。在这个脚本中,我想从管道读取输入,但我也想知道用于将输入管道输入到我的命令。例子:

tail -f /var/log/httpd/error | log.sh
Run Code Online (Sandbox Code Playgroud)

在shell脚本中,我想知道命令tail -f /var/log/httpd/error.

linux bash pipe

9
推荐指数
2
解决办法
2262
查看次数

通过网络从 tar 存档和管道中提取一些成员

编辑:我想多member01member02和目录blah/

tarball_1.tar.gz包含test/20 个文件的目录。我只想提取成员test/member01test/member02目录,blah/并使用 ssh/scp 将它们复制到另一个“remote_host”。

这可以作为单线完成吗?我考虑过使用tar, pax, 或cpio但我想我对这些实用程序还不是很熟练。

cpio tar pipe

9
推荐指数
1
解决办法
4809
查看次数

如何在 cmd.exe 中管道 stderr?

一些程序更喜欢在 stderr 中输出帮助消息。我想用grep命令搜索帮助信息,xx /? | grep regex

我怎么能这样做?

windows redirection command-line pipe cmd.exe

9
推荐指数
1
解决办法
5858
查看次数

你如何一起使用 PIPESTATUS、tee 和 /bin/sh?

当我跑

curl | tee test.txt; echo ${PIPESTATUS[0]}
Run Code Online (Sandbox Code Playgroud)

我正确地看到

curl:尝试“curl --help”或“curl --manual”以获取更多信息

2

但是当我尝试使用“/bin/sh”运行完全相同的命令时:

sh -c "curl | tee test.txt; echo \${PIPESTATUS[0]}"
Run Code Online (Sandbox Code Playgroud)

我得到

curl:尝试“curl --help”或“curl --manual”以获取更多信息

sh: 1: 替换错误

Bad substitution请问我们如何解决问题?

linux bash pipe exit-code

8
推荐指数
2
解决办法
6558
查看次数

为什么不是所有文件都压缩了以及如何改进解决方案

我有一个包含大约 20K 个文件的文件夹。这些文件根据模式命名xy_{\d1,5}_{\d4}\.abc,例如xy_12345_1234.abc. 我想使用以下命令压缩其中的前 10K:

ls | sort -n -k1.4,1.9 | head -n10000 | xargs tar -czf xy_0_10000.tar.gz

但是生成的文件里面只有大约 2K 个文件。

ls | sort -n -k1.4,1.9 | head -n10000 | wc -l 然而,正如预期的那样返回 10000。

在我看来,我在这里误解了一些基本的东西......

我在 Linux Mint 17.1、GNU tar 1.27.1 上使用 zsh 5.0.2

编辑:

@Archemar 建议的分叉听起来很合理,最新的分叉覆盖了生成的文件 - 该文件包含文件的“尾部” - 77739999

结果xargs --show-limit Your environment variables take up 3973 bytes POSIX upper limit on argument length (this system): 2091131 POSIX smallest …

linux zsh shell tar pipe

8
推荐指数
2
解决办法
1864
查看次数

标签 统计

pipe ×10

linux ×4

bash ×3

command-line ×2

tar ×2

windows ×2

awk ×1

batch ×1

cmd.exe ×1

cpio ×1

dir ×1

exit-code ×1

ffmpeg ×1

redirection ×1

shell ×1

video ×1

xargs ×1

zsh ×1