标签: pipe

Notepad++,运行命令并在新选项卡中打开输出

有没有办法notepad++在新选项卡中执行命令并将结果通过管道传回程序?

notepad++ pipe

8
推荐指数
1
解决办法
8160
查看次数

如何在 Linux 中使用管道指定命令行参数?

我是 shell 编程的新手,不知道如何解决这个问题。

我刚刚从网上下载了一个文件到默认目录~/Downloads。我想将该文件移动到另一个目录~/Documents.

由于我不知道下载文件的确切名称,我想我可以使用以下命令来实现我的目标:

ls -t ~/Downloads | head -1 | mv [source] [destination]
Run Code Online (Sandbox Code Playgroud)

如何指定要替换的形式参数。就我而言,我想省略[source]并填写我自己的[destination]参数~/Documents

linux bash shell pipe

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

较少模拟 TTY 以保留管道颜色输出

当您通过管道less传输某些内容时,程序通常会丢弃颜色代码,因为它不会输出到 TTY。因此,您必须添加--color=always选项才能使其工作。

ls -l --color=always | less
grep -R asdf --color=always | less
Run Code Online (Sandbox Code Playgroud)

更糟糕的是,有时甚至不支持该选项,因此实际上无法强制将颜色输出到管道。

有没有(相对)简单的方法来减少对 TTY 的模拟,这样我就不必--color=always在通过管道传输到每个程序时指定每个程序,并且它会在可能的情况下自动显示颜色输出?

bash colors tty less pipe

8
推荐指数
1
解决办法
4055
查看次数

如何将 *all* 输入的 shell 命令的输出通过管道传输到另一个?(例如,将所有内容通过管道传输到 'lolcat')

下午好,

(OS X 用户)

我特别想将我输入的每个 shell 命令的输出通过管道传输到 ruby​​ gem 'lolcat'(这使得输出到终端彩虹色)。

有没有办法在不单独显式别名命令的情况下做到这一点?我在想也许有一种方法可以在按下返回键之前通过管道传输任何内容,但我不确定如何执行此操作。

感谢您的帮助,因为我厌倦了在终端中只看一种颜色。

unix shell ruby pipe stdout

8
推荐指数
1
解决办法
6187
查看次数

你如何一起使用 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
查看次数

规避“远程主机标识已更改”警告

我正在连接到许多使用相同 IP 地址的设备。当我将它们插入路由器时,我收到警告消息REMOTE HOST IDENTIFICATION HAS CHANGED!ssh-keygen -f "/home/xxx/.ssh/known_hosts" -R "xx.xx.xx.xx"如果我仍想与远程主机连接,则需要运行。

我目前的策略:

  1. 我想从以下位置创建一个缩短的命令: ssh-keygen -f "/home/xxx/.ssh/known_hosts" -R "xx.xx.xx.xx"
  2. 您可以从任何用户执行此操作。
  3. 它应该是一个单一的命令。(所以我可以将一行复制粘贴到其他终端,以防我没有在.bash_profile.
  4. xx.xx.xx.xx需求是可配置的。

由于您无法为别名提供参数(至少我是这么认为的),因此我尝试使用以下方法解决它read

$ alias ssh-keyrm='read LAST_SSH_IP_ADDRESS_CLEARED && ssh-keygen -f "$HOME/.ssh/known_hosts" -R "$LAST_SSH_IP_ADDRESS_CLEARED"'
$ ssh-keyrm
xx.xx.xx.xx
Run Code Online (Sandbox Code Playgroud)

关于如何进一步优化它的任何建议?

linux ssh alias pipe

8
推荐指数
4
解决办法
2058
查看次数

在 Windows 上创建命名管道

我想使用 BCP(批量复制程序)从 SQL Server 2005 数据库编写一个大型数据集。

理想情况下,我想执行以下操作:

bcp MyDatabase..MyTable OUT STDOUT -c -t, |gzip -c c:\temp\dataset.csv.gz
Run Code Online (Sandbox Code Playgroud)

然而,BCP 只是将其写入名为 STDOUT 的文字文件。

我也试过:

bcp MyDatabase..MyTable OUT CON: -c -t, |gzip -c c:\temp\dataset.csv.gz
Run Code Online (Sandbox Code Playgroud)

但这会返回和错误Error = [Microsoft][SQL Native Client]Unable to open BCP host data-file

那么,我可以在任何地方创建命名管道吗?我在网络上看到了一些提示,以某种方式从gzip一端绑定到一个文件名,如 \\.\ named_pipe - 但这是如何完成的?

更新:请注意,微软自己承认他们真的不关心 SQL Server 的效率:http ://connect.microsoft.com/SQLServer/feedback/details/337702/support-bcp-out-in-and-bulk-至少插入压缩或命名管道支持

windows sql-server pipe sql-server-2005

7
推荐指数
1
解决办法
6010
查看次数

Rsync 到标准输出?

我可以通过 rsync 协议访问备份服务器(只有 rsync,没有别的)。现在,我想从那里获取文件(即 .tar.gz)并将其直接传递给 tar 命令,而不将存档保存在本地文件系统中。

为了形象化,通过 ssh 访问,我可以:

ssh remote_host cat backup.file.tar.gz | tar xzf -
Run Code Online (Sandbox Code Playgroud)

我将在本地获得未压缩的备份,而无需将 .tar.gz 实际存储在本地机器上。

使用rsync时可以实现吗?

linux shell rsync tar pipe

7
推荐指数
2
解决办法
9828
查看次数

管道无限制 curl 标准输出到分块文件中

我有一个 HTTP 端点,可以提供无限的事件流。现在我想使用 curl 记录该流,但同时拆分记录的文件 - 最好基于行号以防止损坏。

我试过 split,但似乎 split 在输入流结束之前什么都不做。

这是我的命令:

stdbuf -oL curl -s http://... | split -l1 - record.chunked.
Run Code Online (Sandbox Code Playgroud)

用于测试:以下命令尝试将 ping 命令的结果拆分为每个文件 1 行的文件。但它不起作用。

ping localhost | split -l1 - out.
Run Code Online (Sandbox Code Playgroud)

是否有另一种(精益,简单,最好没有脚本)的方法来做到这一点?

streaming curl pipe

7
推荐指数
1
解决办法
1086
查看次数

标签 统计

pipe ×10

linux ×5

shell ×4

bash ×3

tar ×2

alias ×1

colors ×1

curl ×1

exit-code ×1

less ×1

notepad++ ×1

rsync ×1

ruby ×1

sql-server ×1

sql-server-2005 ×1

ssh ×1

stdout ×1

streaming ×1

tty ×1

unix ×1

windows ×1

zsh ×1