小编Dan*_*mer的帖子

Unix - "xargs" - 输出"在中间"(不在最后!)

xargs在Unix中使用应用程序的示例可以是这样的:

ls | xargs echo
Run Code Online (Sandbox Code Playgroud)

这与(假设我有someFile并且someDir/在工作目录中)相同:

echo someFile someDir
Run Code Online (Sandbox Code Playgroud)

所以xargs取其输入并将其放在下一个命令的末尾(这里是echo的结尾).

但有时我想把xargs它的输入放在下一个命令中间的某个地方.

例如:

find . -type f -name "*.cpp" -print | xargs g++ -o outputFile
Run Code Online (Sandbox Code Playgroud)

所以如果我在当前目录中的文件有a.cpp,b.cpp,c.cpp输出将是相同的用命令:

g++ -o outputFile a.cpp b.cpp c.cpp
Run Code Online (Sandbox Code Playgroud)

但是我想要这样的东西:

g++ a.cpp b.cpp c.cpp -o outputFile
Run Code Online (Sandbox Code Playgroud)

有办法吗?

PS:在某些情况下我需要它,因为例如:

i586-mingw32msvc-g++ -o outputFile `pkg-config --cflags --libs gtkmm-2.4` a.cpp b.cpp c.cpp
Run Code Online (Sandbox Code Playgroud)

不起作用,但这个工作正常:

i586-mingw32msvc-g++ a.cpp b.cpp c.cpp -o outputFile `pkg-config --cflags --libs gtkmm-2.4`
Run Code Online (Sandbox Code Playgroud)

unix g++ xargs

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

Eclipse在哪里存储userdir中的设置和插件?

我刚刚在我的盒子上安装了一个新的Linux发行版,并希望将我的Eclipse从旧的移动/home/username/到新的.因为我更改了桌面,所以我不想复制所有隐藏文件夹~/.那么我需要复制哪些目录才能拥有所有已安装的插件?

我已经复制了~/.eclipse/,它肯定包含与插件相关的文件,但Eclipse不会加载它们.任何提示?

unix eclipse installation plugins

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

如何规划外部子运行的其他测试?

我们在Perl中为不同的科学数据格式编写了解析器.最近我添加了一个测试套件,其中parser_*.t包含每种格式和子格式的文件.

当然,解析器的API完全相同,只是从用于测试解析的示例文件中读取的数据不同.为了简化测试文件,我写了一个sub,它传递了解析器对象和表示预期数据的哈希结构.看起来像

my $parser = new MyApp::Parser($file);
test_nested_objects = ($parser, {
     property1 => "value",
     property2 => 123,
     subobject_accessor => {
         property3 => "foobar",
     }
}
Run Code Online (Sandbox Code Playgroud)

test_nested_objects遍历散列并运行散列中定义的所有属性的测试,例如,如果subobject_accessor可以调用,则返回一个对象并且可以调用该对象property3.

我检查了整个*.t文件运行了多少测试并添加tests => 123到所有*.t文件中.现在,我在泛型函数中添加了一些检查,所有计划都是错误的.

如何让我的计划了解子测试?我想实现以下目标:

  • 在运行它们之前给出的测试次数以查看progess
  • 总数自动增加→编辑子时无需手动更改数字
  • 在运行时可以看到sub中的单个测试(在sub中隐藏测试并且只返回0或1是不可接受的,因为我真的需要知道解析数据有什么问题)

我希望你能够明白.对不起,但我认为如果没有一些背景知识,人们可能会理解.

testing perl test-plan

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

为什么Perl在使用bigint时警告"无用常数1"?

当我注意到语法检查结果警告无用的常量(1)时,我正在编写一个模块作为我的应用程序的一部分.这是为什么?

常量是1模块末尾的强制性,通常会被警告忽略,如下所示perldoc perldiag:

对于等于0或1的数值常量,不会发出此警告,因为它们通常用在类似的语句中

1 while sub_with_side_effects();
Run Code Online (Sandbox Code Playgroud)

(可能有一个更好的来源.毕竟1在文件的最后是完全需要的,不要被警告.)

但是,即使对于几乎空的模块,也会产生警告use bigint.

package Foo;

use bigint;

1;
Run Code Online (Sandbox Code Playgroud)

对于这个简单的文件语法检查,会产生以下警告:

$> perl -Wc Foo.pm
Useless use of a constant (1) in void context at Foo.pm line 5.
Foo.pm syntax OK
Run Code Online (Sandbox Code Playgroud)

bigint除了在sqlite中输入长十六进制数字之外,我找不到任何引用和警告消息,但我认为这并没有真正解决我的问题.

我的Perl是Cygwin的v5.14.4,bigint是0.36.

perl perl-module bigint perlsyn

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

如何使用Moose设置DBIx :: Class模式 - 明确指南

我发现很难找到有关如何使用组装DBIx::Class模式结构的信息Moose.如何正确地(基本上工作)和现代Perl(良好的风格,快速,没有警告)?

这些是我的目标:

  • 跟随穆斯Moose::Manual::BestPractices,特别是:
    • 使用namespace::autoclean
    • __PACKAGE__->meta->make_immutable.
  • 使用普通的基类ResultResultSet
  • 当使用任何魔术技巧有一个解释他们的评论(在研究期间我发现一个指导建议sub BUILDARGS { $_[2] }解释不要问)
  • 移动公共代码,例如MooseX::NonMoose(如果需要)或者__PACKAGE__->load_components按照建议移动到公共基类中DBIx::Class::Manual::Cookbook

这些是我遇到的问题:

  • 在使用时__PACKAGE__->meta->make_immutable我得到了类似的警告Not inlining 'new' for MyApp::Schema::Result::MyTable since it is not inheriting the default Moose::Object::new
  • 当所有调用移动__PACKAGE__->load_componentsResult基类时,我的datetime列没有被夸大

perl moose dbix-class

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

测量来自apache访问日志的流量

有没有办法测量一个Apache日志文件中使用了多少流量?

格式:

66.249.72.214 - - [05/Nov/2011:12:47:37 +0200] "GET /produktas/565638 HTTP/1.1" 200 4699 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Run Code Online (Sandbox Code Playgroud)

我理解的4699是除了标题之外传输的字节.

我需要一个简单的解决方案(可能是一个小的bash脚本)来汇总每个日志行中的字节.

linux apache logging

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

使用DBIx :: Class预取相关行或不行,可能使用OUTER LEFT JOIN?

我想从表中检索行,DBIx::Class并从同一个表中预取相应的行,其中列具有特定的其他值.我需要从计划A中获取所有作业(复制它们)并从计划B中检索所有相应的作业.

我已经编制了测试表,看起来像这样:

CREATE TABLE tasks (
    id INTEGER
);

CREATE TABLE schedules (
    id INTEGER
);

CREATE TABLE assignments (
    id INTEGER,
    scheduleId INTEGER,
    taskId INTEGER,
    worker TEXT,
    FOREIGN KEY (scheduleId) REFERENCES schedules(id),
    FOREIGN KEY (taskId) REFERENCES tasks(id)
);
Run Code Online (Sandbox Code Playgroud)

计划1有一些任务,计划2有一些任务:

INSERT INTO tasks (id) VALUES (1);
INSERT INTO tasks (id) VALUES (2);
INSERT INTO schedules (id) VALUES (1);
INSERT INTO schedules (id) VALUES (2);
INSERT INTO assignments (id,scheduleId,taskId,worker) VALUES (1,1,1,"Alice");
INSERT INTO assignments (id,scheduleId,taskId,worker) VALUES (2,1,2,"Bob");
INSERT INTO …
Run Code Online (Sandbox Code Playgroud)

sql perl join dbix-class

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

使用 scp 在两个 docker 容器之间复制文件

我使用 alpine 映像创建了两个名为 server 和 client 的 docker 容器,并且我正在运行这两个容器。然后我在两个容器中都安装了apk add opensshapk add openrc。使用rc-service sshd start我已经启动了 ssh 服务。现在,我想使用scp.

从服务器容器我输入:

scp myfile.txt client@172.17.0.3:/location_of_the_folder
Run Code Online (Sandbox Code Playgroud)

它要求输入客户端容器的密码。我能做什么?docker 容器的默认密码是什么?

我尝试了 3 个选项,如下所示:

  1. 将相同的卷附加到两个容器。
  2. 使用docker cp从服务器容器到主机,然后主机到客户端容器。
  3. ssh-keygen在服务器容器中使用并将id_rsa.pub 密钥手动复制到客户端容器/root/.ssh目录,它可以工作。

我不想使用选项 1 和选项 2。我应该使用 shell 脚本对选项 3 做什么?我想自动化这件事。我可以手动完成,但我们可以使用 shell 脚本通过自动化来完成,将一些文本从一个容器复制到另一个容器吗?

ssh containers scp docker

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

删除旧提交:`git rebase`导致合并冲突

不幸的是,我们不久前意外地检查了一个大的二进制文件,直到今天没有人注意到.现在我想删除该提交并保留剩余的历史记录.我知道改变推进历史的警告,但在这种情况下,我无法避免它.

我一直试图达到这个~1h但却未能得到它.我找到的最好的命令是

git rebase --interactive --preserve-merges $(EVIL_COMMIT)^
Run Code Online (Sandbox Code Playgroud)

并在编辑器中评论出第一次提交是邪恶的.

不幸的是,git rebase在合并时停止并提示手动解决合并冲突.邪恶的提交只添加了我们的软件为测试目的计算的一些示例文件.因此,它们不应该与刚刚丢失的示例文件发生任何冲突.

  1. 我不明白合并冲突的起源.有人可以解释一下吗?
  2. 怎么解决?

我在Google和SO搜索上花了很多时间.一些线程涵盖了类似的主题,但是使用的语法在今天的Git版本中不再可用,或者它对我不起作用(我之前仅描述了一种方法,因为它是最简单的方法).

git git-merge git-rebase

5
推荐指数
1
解决办法
5378
查看次数

具有相同动画 GIF 的多个 <img> 标签的异步播放

我在一个 HTML 页面上有很多<img>标签,其中一些标签共享相同的动画 GIF 文件。URLsrc是由 JavaScript 动态设置的,但使用我的代码,相同的字符要么再次播放,要么立即在最后一帧中显示后续字符。

想法:这是一个艺术项目。输入一些文本后,字符会以特殊字体显示,并且每个字符(一个接一个)完成一些转换,我只能通过使用动画 GIF 来实现。文本被分割成单个字符,<img>标签的创建方式如下:

<!-- delivered HTML at page load -->
<img src="initial/f.png"> <!-- I used to PNG here to outline -->
<img src="initial/o.png"> <!-- the animation is NOT set a first -->
<img src="initial/o.png">
Run Code Online (Sandbox Code Playgroud)

当动画开始时,第一个<img>的 URL 设置为transition/f.gif。仅在播放完毕(由时间决定)后,才会设置第二张图像等。

<!-- while 2nd animation is running -->
<img src="transition/f.gif"> <!-- already finished, displays last frame -->
<img src="transition/o.gif"> <!-- being animated right now …
Run Code Online (Sandbox Code Playgroud)

html javascript browser asynchronous animated-gif

5
推荐指数
1
解决办法
1782
查看次数