小编Mik*_*ike的帖子

如何将输出重定向到文件和标准输出

在bash中,调用foo将在stdout上显示该命令的任何输出.

调用foo > output会将该命令的任何输出重定向到指定的文件(在本例中为'output').

有没有办法将输出重定向到文件并将其显示在stdout上?

linux io bash file-io stdout

898
推荐指数
9
解决办法
57万
查看次数

如何从shell执行XPath单行程序?

对于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 …

xml shell xpath cross-platform

182
推荐指数
7
解决办法
12万
查看次数

当我做"git diff"时,如何获得并排差异?

当我输入"git diff"时,我想看到一个并排的差异,就像"diff -y"一样,或者喜欢在像"kdiff3"这样的交互式差异工具中显示差异.如何才能做到这一点?

git git-diff code-visualization

140
推荐指数
11
解决办法
8万
查看次数

当"参数列表太长"时,如何删除超过3天的所有文件?

我有一个日志文件目录,里面有82000个文件和目录(大约一半).

我需要删除超过3天的所有文件和目录.

在一个包含37000个文件的目录中,我能够通过以下方式执行此操作:

find * -mtime +3 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

但是对于82000个文件/目录,我收到错误:

/ usr/bin/find:参数列表太长

如何解决此错误,以便删除超过3天的所有文件/目录?

linux file-io resource-cleanup

88
推荐指数
3
解决办法
18万
查看次数

具有多个谓词的Xpath表达式

我正在尝试构建一个复杂的xpath表达式,它将回答以下条件.

从下面的XML数据中,返回User实体,其中:

  1. 他的登录名是" user1 "
  2. 他的名字是" 用户1 "
  3. 他有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)

有人可以为这种情况提供一个例子吗?

编辑:添加了复杂的配置文件实体

xml xpath predicate

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

C++:获取临时文件,跨平台

我正在寻找一种跨平台的方式来获取指定的临时文件.例如,在linux中,它将位于/tmpdir中,而在Windows中则位于一些名为Internet Explorer的临时目录中.

是否存在跨平台(Boost?)解决方案?

编辑:

我需要这个文件存在,直到程序终止.tmpfile()不能保证.引用ccpreference:

当流关闭(fclose) 或程序正常终止时,将自动删除创建的临时文件.

c++ temporary-files

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

如何打印只包含BASH列表中字符的行?

我有一个名为"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)

我管理的唯一解决方案是:

  • 创建所有可能的字母列表.
  • 从此列表中删除搜索到的字母,留下我不想搜索的字母列表.
  • 使用for循环循环每个字母,删除包含这些字母的字典中的所有行.
  • 打印字典中的其余单词.

这个解决方案非常慢.此外,我需要将此代码与其他语言一起使用,这些语言有数千个可能的字符,因此这种搜索方法特别慢.

如何仅打印"dictionary.txt"中仅包含搜索字母的那些行,而不打印其他内容?

regex bash grep

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

将XPATH谓词与位置相结合

我有一个包含该类的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)

xpath predicate

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

在Maven发布期间丢失的属性:执行

我正在从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在执行目标期间的某个时刻运行分叉进程 - 这就是我遇到问题的原因吗?

有没有办法可以确保将此特定属性传递给该分叉进程?

teamcity system-properties maven maven-release-plugin

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

如何在Java中创建InputStream的深层副本

我想知道如何制作一份深刻的副本InputStream.

我知道它可以用IOUtils包完成,但我想尽可能避免使用它们.有没有人知道另一种方式?

java clone inputstream deep-copy

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

与ClearCase相比,如何使用git元数据策略?

在我之前的开发人员生活中,clearcase是10年以上用于版本控制的工具.现在,我工作的组织已经转移到git 4年了.在clearcase中,有易于访问的元数据结构,例如所有级别的项目上的属性,例如存储库或分支OR标签.git笔记存在,但经过一些网上冲浪,我没有遇到任何明确的有效方法,以及为什么这样做.例如,UCM ClearCase基线升级级别是一个很好的概念,我希望在git中这么简单.

我代表这个特定问题的开发社区统计数据:<100个开发人员,<5个主要发布分支,<100个客户补丁分支,代码库大小:<1000000行代码.

因此需要一些适当的元数据策略和工具.

在clearcase中,存在以下元数据结构:

  • 标签(常见用法:指出外部SW交付中包含的所有文件修订)
  • 属性,可以应用于标签或分支:

    • label属性,可以有任何值,常用用法:告诉标签的状态:TEST_RESULT:OK | NOK或CUSTOMER_AVAILABILITY:GENERAL | LIMITED | INTERNAL_ONLY
    • 分支属性,常用用法:BRANCH_STATUS:ACTIVE | OBSOLETE
  • UCM基线是一种带有状态属性的标签形式(例如:参见https://www-304.ibm.com/support/docview.wss?uid=swg21135893)

  • 超链接(例如用于指向合并方向)

特别是:

  • 标签+属性构造,可用于TEST_RESULT
  • 分支+属性可以使BRANCH_STATUS变得清晰

git performance metadata clearcase-ucm git-notes

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