在bash中,调用foo将在stdout上显示该命令的任何输出.
调用foo > output会将该命令的任何输出重定向到指定的文件(在本例中为'output').
有没有办法将输出重定向到文件并将其显示在stdout上?
对于Ubuntu和/或CentOS,是否有一个包,它有一个命令行工具,可以执行XPath单线程,foo //element@attribute filename.xml或者foo //element@attribute < filename.xml逐行返回结果?
我正在寻找一些可以让我只是apt-get install foo或者yum install foo然后只是开箱即用,没有包装或其他必要的改编的东西.
以下是一些接近的事例:
引入nokogiri.如果我写这个包装器,我可以用上面描述的方式调用包装器:
#!/usr/bin/ruby
require 'nokogiri'
Nokogiri::XML(STDIN).xpath(ARGV[0]).each do |row|
puts row
end
Run Code Online (Sandbox Code Playgroud)
XML :: XPath的.可以使用这个包装器:
#!/usr/bin/perl
use strict;
use warnings;
use XML::XPath;
my $root = XML::XPath->new(ioref => 'STDIN');
for my $node ($root->find($ARGV[0])->get_nodelist) {
print($node->getData, "\n");
}
Run Code Online (Sandbox Code Playgroud)
xpath来自XML :: XPath返回太多噪音,-- NODE --和attribute = "value".
xml_grep 来自XML :: Twig无法处理不返回元素的表达式,因此无法在不进一步处理的情况下提取属性值.
编辑:
echo cat //element/@attribute | xmllint --shell filename.xml返回类似的噪音xpath …
当我输入"git diff"时,我想看到一个并排的差异,就像"diff -y"一样,或者喜欢在像"kdiff3"这样的交互式差异工具中显示差异.如何才能做到这一点?
我有一个日志文件目录,里面有82000个文件和目录(大约一半).
我需要删除超过3天的所有文件和目录.
在一个包含37000个文件的目录中,我能够通过以下方式执行此操作:
find * -mtime +3 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
但是对于82000个文件/目录,我收到错误:
/ usr/bin/find:参数列表太长
如何解决此错误,以便删除超过3天的所有文件/目录?
我正在尝试构建一个复杂的xpath表达式,它将回答以下条件.
从下面的XML数据中,返回User实体,其中:
他有2个不同的配置文件值,分别是" operator "和" admin "(我不知道前面的确切顺序)
<user>
<login>user1</login>
<name>User 1</name>
<profile>
<value>admin</value>
<id>2</id>
<description>admin users</description>
</profile>
<profile>
<value>operator</value>
<id>1</id>
<description>Operator</description>
</profile>
</user>
<user>
<login>user2</login>
<name>User 2</name>
<profile>
<value>admin</value>
<id>4</id>
<description>admins users</description>
</profile>
<profile>
<value>poweruser</value>
<id>5</id>
<description>power users</description>
</profile>
</user>
</root>
Run Code Online (Sandbox Code Playgroud)有人可以为这种情况提供一个例子吗?
编辑:添加了复杂的配置文件实体
我正在寻找一种跨平台的方式来获取指定的临时文件.例如,在linux中,它将位于/tmpdir中,而在Windows中则位于一些名为Internet Explorer的临时目录中.
是否存在跨平台(Boost?)解决方案?
编辑:
我需要这个文件存在,直到程序终止.tmpfile()不能保证.引用ccpreference:
当流关闭(fclose) 或程序正常终止时,将自动删除创建的临时文件.
我有一个名为"dictionary.txt"的文件,其中包含所有可能单词的列表,例如:
a
aardvark
act
anvil
ate
...
Run Code Online (Sandbox Code Playgroud)
如何搜索此内容,仅打印包含有限列表中字母的行,例如,如果列表中包含字母"c","a"和"t",搜索将显示以下单词:
a
act
cat
Run Code Online (Sandbox Code Playgroud)
如果搜索字母"e","a"和"t",则只能从"dictionary.txt"中找到这些单词:
a
ate
eat
tea
Run Code Online (Sandbox Code Playgroud)
我管理的唯一解决方案是:
这个解决方案非常慢.此外,我需要将此代码与其他语言一起使用,这些语言有数千个可能的字符,因此这种搜索方法特别慢.
如何仅打印"dictionary.txt"中仅包含搜索字母的那些行,而不打印其他内容?
我有一个包含该类的div元素的集合media-gallery-item.
我想选择元素编号x.
只选择所有项目时,我得到5个结果
$x("//div[@id='content-area']//div[@class='media-gallery-item']")
Run Code Online (Sandbox Code Playgroud)
现在我希望能够选择项目编号2,但我无法弄清楚如何将两者正确组合:
$x("//div[@id='content-area']//div[@class='media-gallery-item'][2]")
$x("//div[@id='content-area']//div[@class='media-gallery-item'
and position() = 2]")
Run Code Online (Sandbox Code Playgroud)
我知道这些并没有多大意义,因为它不是一个实际的AND,但更像是:"首先按照这个过滤,然后选择第二个匹配".这样做的目的是继续选择事物(例如在第二个元素中,获取元素的href属性a)
我正在从TeamCity运行maven构建并使用build.vcs.number将Subversion修订版写入我的清单.在使用Subversion作为VCS的任何Maven构建中,TeamCity补充道
-Dbuild.vcs.number=1234
Run Code Online (Sandbox Code Playgroud)
到maven命令行,其中1234是正在构建的分支中的最新修订版.
然后在我的pom.xml中,我有
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<build>${build.vcs.number}</build>
</manifestEntries>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
这一切都正常,直到我运行Maven release:perform(也来自TeamCity),此时$ {build.vcs.number}变为null,即使我在TeamCity构建日志中可以看到该属性是在命令中传入的线.
maven-release-plugin文档暗示Maven在执行目标期间的某个时刻运行分叉进程 - 这就是我遇到问题的原因吗?
有没有办法可以确保将此特定属性传递给该分叉进程?
我想知道如何制作一份深刻的副本InputStream.
我知道它可以用IOUtils包完成,但我想尽可能避免使用它们.有没有人知道另一种方式?
在我之前的开发人员生活中,clearcase是10年以上用于版本控制的工具.现在,我工作的组织已经转移到git 4年了.在clearcase中,有易于访问的元数据结构,例如所有级别的项目上的属性,例如存储库或分支OR标签.git笔记存在,但经过一些网上冲浪,我没有遇到任何明确的有效方法,以及为什么这样做.例如,UCM ClearCase基线升级级别是一个很好的概念,我希望在git中这么简单.
我代表这个特定问题的开发社区统计数据:<100个开发人员,<5个主要发布分支,<100个客户补丁分支,代码库大小:<1000000行代码.
因此需要一些适当的元数据策略和工具.
在clearcase中,存在以下元数据结构:
属性,可以应用于标签或分支:
UCM基线是一种带有状态属性的标签形式(例如:参见https://www-304.ibm.com/support/docview.wss?uid=swg21135893)
特别是: