似乎较新版本的bash具有&>运算符,如果我理解正确的话,将stdout和stderr重定向到一个文件(&>>改为附加到文件,就像Adrian澄清的那样).
实现相同目标的最简单方法是什么,而是管道到另一个命令?
例如,在这一行:
cmd-doesnt-respect-difference-between-stdout-and-stderr | grep -i SomeError
Run Code Online (Sandbox Code Playgroud)
我希望grep能够匹配stdout和stderr中的内容(实际上,将它们组合成一个流).
注意:这个问题是询问管道,而不是重定向 - 因此它不是它当前标记为重复的问题的副本.
我一直在尝试从程序输出中读取环境变量的输入,如下所示:
echo first second | read A B ; echo $A-$B
Run Code Online (Sandbox Code Playgroud)
结果是:
-
Run Code Online (Sandbox Code Playgroud)
A和B都是空的.我读到了bash在子shell中执行管道命令,并且基本上阻止了管道输入读取.但是,以下内容:
echo first second | while read A B ; do echo $A-$B ; done
Run Code Online (Sandbox Code Playgroud)
似乎工作,结果是:
first-second
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这里的逻辑是什么吗?是while...... done构造中的命令实际上是在同一个shell中执行echo而不是在子shell中执行?
我正在编写一个shell脚本,一旦生成数据就将数据放入hadoop.我可以ssh到我的主节点,将文件复制到那里的文件夹,然后将它们放入hadoop.我正在寻找一个shell命令来摆脱将文件复制到主节点上的本地磁盘.为了更好地解释我需要什么,在下面你可以找到我到目前为止所拥有的:
1)将文件复制到主节点的本地磁盘:
scp test.txt username@masternode:/folderName/
Run Code Online (Sandbox Code Playgroud)
我已经使用密钥设置了SSH连接.因此,不需要密码来执行此操作.
2)我可以使用ssh远程执行hadoop put命令:
ssh username@masternode "hadoop dfs -put /folderName/test.txt hadoopFolderName/"
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是如何将这两个步骤组合成一个并跳过masterNode本地磁盘上的文件的本地副本.
谢谢
换句话说,我想以我能够的方式管理几个命令
真的很简单的问题,如何在shell中组合echo和cat,我正在尝试将文件的内容写入另一个带有前置字符串的文件中?
如果/ tmp/file看起来像这样:
this is a test
Run Code Online (Sandbox Code Playgroud)
我想运行这个:
echo "PREPENDED STRING"
cat /tmp/file | sed 's/test/test2/g' > /tmp/result
Run Code Online (Sandbox Code Playgroud)
所以/ tmp/result看起来像这样:
PREPENDED STRINGthis is a test2
Run Code Online (Sandbox Code Playgroud)
谢谢.
是否可以通过命令行将$ _SERVER变量传递给PHP脚本?
具体来说,我试图手动设置$ _SERVER ['recipient'],这样我就可以在不设置邮件服务器的情况下测试电子邮件管道.
我想知道为什么,在中dplyr或magrittr包装,更具体的链接功能%>%有一定的麻烦与基础运营商+,-,*,和/
Chaining获取前一个语句的输出并将其作为下一个语句的第一个参数提供:
1:10 %>% sum
# [55]
Run Code Online (Sandbox Code Playgroud)
那么为什么这不起作用
1:10 %>% *2 %>% sum
1:10 %>% .*2 %>% sum
Run Code Online (Sandbox Code Playgroud)
我还发现以下语法适用于添加/减少,但不能乘法或除法.为什么这样?
1:10 %>% +(2) # works OK
1:10 %>% *(2) # nope...
Run Code Online (Sandbox Code Playgroud)
那么我应该写一个匿名函数甚至*2对我的data.frame 进行操作吗?
1:10 %>% (function(x) x*2) %>% sum
Run Code Online (Sandbox Code Playgroud)
谢谢,我在其他SO问题中找不到答案.
我想使用一些有用的函数作为命令.为此我正在测试click库.我定义了我的三个原始函数,然后装饰为click.command:
import click
import os, sys
@click.command()
@click.argument('content', required=False)
@click.option('--to_stdout', default=True)
def add_name(content, to_stdout=False):
if not content:
content = ''.join(sys.stdin.readlines())
result = content + "\n\tadded name"
if to_stdout is True:
sys.stdout.writelines(result)
return result
@click.command()
@click.argument('content', required=False)
@click.option('--to_stdout', default=True)
def add_surname(content, to_stdout=False):
if not content:
content = ''.join(sys.stdin.readlines())
result = content + "\n\tadded surname"
if to_stdout is True:
sys.stdout.writelines(result)
return result
@click.command()
@click.argument('content', required=False)
@click.option('--to_stdout', default=False)
def add_name_and_surname(content, to_stdout=False):
result = add_surname(add_name(content))
if to_stdout is True:
sys.stdout.writelines(result) …Run Code Online (Sandbox Code Playgroud) 我编写了一个程序,将一个数据列表写入'.dat'文件,然后使用gnuplot单独绘制它.有没有办法让我的代码自动绘制它?我的输出形式如下:
x-coord analytic approximation
x-coord analytic approximation
x-coord analytic approximation
x-coord analytic approximation
x-coord analytic approximation
....
Run Code Online (Sandbox Code Playgroud)
理想情况下,当我运行代码时,图形也将打印出x标签,y标签和标题(可以从我的C代码更改).非常感谢.
我有一个Python脚本,它使用加载网页urllib2.urlopen,做一些不同的魔法,然后使用它来吐出结果print.然后,我们在Windows上运行该程序,如下所示:
python program.py > output.htm
Run Code Online (Sandbox Code Playgroud)
这是问题所在:
在urlopen从其输出UTF8 IIS Web服务器读取数据.它会将相同的数据吐出到输出中,但是某些字符(例如Word总是会根据您的意愿为您插入的长连字符,因为它比您更聪明)会出现乱码并最终变形–.
经过进一步调查,我注意到即使Web服务器吐出UTF8数据,该output.htm文件也使用ISO-8859-1字符集进行编码.
我的问题:
output.htm作为命令行参数传入并写入该文件而不是屏幕,但我必须在我的程序中重做一大堆逻辑.谢谢你的帮助!
更新:
在output.htm我的顶部添加:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Run Code Online (Sandbox Code Playgroud)
但是,它没有任何区别.角色仍然是乱码.如果我在Firefox中手动切换到UTF-8,则文件会正确显示.IE和FF都认为这个文件是Western ISO,尽管它显然不是.
Github开发版的magrittr包含了一些很酷的新功能,但是我并没有完全理解%>%和之间的区别%,%.这只是%>%价值和%,%功能的正式,还是有一些特殊的特点?