小编gle*_*man的帖子

数组合并(联盟)

我有两个我需要合并的数组,使用Union(|)运算符是PAINFULLY慢..有没有其他方法来完成数组合并?

此外,数组中充满了对象,而不是字符串.

数组中对象的示例

#<Article 
 id: 1, 
 xml_document_id: 1, 
 source: "<article><domain>events.waikato.ac</domain><excerpt...", 
 created_at: "2010-02-11 01:32:46", 
 updated_at: "2010-02-11 01:41:28"
>
Run Code Online (Sandbox Code Playgroud)

source是一小段XML.

编辑

抱歉! 通过'merge'我的意思是我不需要插入重复项.

A => [1, 2, 3, 4, 5]
B => [3, 4, 5, 6, 7]
A.magic_merge(B) #=> [1, 2, 3, 4, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud)

理解整数实际上是Article对象,而Union运算符似乎永远占用

ruby arrays ruby-on-rails

35
推荐指数
2
解决办法
5万
查看次数

如何在tcsh Shell中检查变量是否为空?

如果我必须在bash shell中检查变量是否为空,我可以使用以下脚本进行检查:

if [ -z "$1" ] 
then
    echo "variable is empty"
else 
    echo "variable contains $1"
fi
Run Code Online (Sandbox Code Playgroud)

但我需要将其转换为tcsh shell.

csh tcsh

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

Ruby转义ARGV参数或字符串作为shell命令的参数

好的,这让我抓狂:

`ls #{"/media/music/Miles Davis"}`
Run Code Online (Sandbox Code Playgroud)

由于"Miles"和"Davis"之间的空间而失败

假设我写了一个ruby脚本,用户将文件路径作为参数传递.如何将其转义并输入shell-out命令.是的,是的,我知道,应该避免炮击.但这是一个人为的例子,我仍然需要这个.

我会这样做system("ls", ARGV[0]),但它不会将ls的stdout输出作为字符串返回,这是反引号做得好的.

如何逃避在shellout中插入的内容?

ruby bash shell scripting

26
推荐指数
2
解决办法
6527
查看次数

如何在xargs -0之后执行多个命令?

find . -name "filename including space" -print0 | xargs -0 ls -aldF > log.txt
find . -name "filename including space" -print0 | xargs -0 rm -rdf
Run Code Online (Sandbox Code Playgroud)

是否可以将这两个命令合并为一个,这样只能完成1个查找而不是2个?

我知道xargs -I可能有办法做到这一点,这可能会导致文件名(包括空格)时出错.任何指导都非常感谢.

bash find xargs

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

在Linux中使用cp时如何避免"是同一个文件"的警告信息?

我正在尝试将某些文件从一个目录复制到另一个目录.使用此命令

find "$HOME" -name '*.txt' -type f -print0 | xargs -0 cp -t $HOME/newdir
Run Code Online (Sandbox Code Playgroud)

我收到一条警告信息

cp:'/ home/me/newdir/logfile.txt'和'/home/me/newdir/logfile.txt'是同一个文件

如何避免此警告消息?

linux bash copy cp

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

隐藏expect的输出

这是期望脚本的一部分

#/usr/bin/expect 

spawn -noecho kwalletcli -f Passwords -e keyofmypassword
expect ".*"
set passwd $expect_out(buffer)

# do some thing
# ...
Run Code Online (Sandbox Code Playgroud)

它从kwalletcli读取密码,并存储在变量中passwd.所以我可以用这个连​​接到服务器passwd.

但是,kwalletcli的输出是通过expect并在控制台上显示.我怎么能隐藏它

linux expect

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

AWK/SED.如何删除简单文本文件中的括号

我有一个看起来像这样的文本文件:

(-9.1744438E-02,7.6282293E-02) (-9.1744438E-02,7.6282293E-02)  ... and so on.
Run Code Online (Sandbox Code Playgroud)

我想通过删除所有括号和每对新行的新行来修改该文件,使其看起来像这样:

-9.1744438E-02,7.6282293E-02
-9.1744438E-02,7.6282293E-02
...
Run Code Online (Sandbox Code Playgroud)

一个简单的方法吗?

任何帮助表示赞赏,

弗雷德

awk sed

13
推荐指数
2
解决办法
4万
查看次数

如何使用sed/awk切换/旋转每两行?

我一直在手工做这个,我不能再做了 - 我有几千行,我认为这是sed或awk的工作.

基本上,我们有一个这样的文件:

A sentence X
A matching sentence Y
A sentence Z
A matching sentence N
Run Code Online (Sandbox Code Playgroud)

此模式将继续整个文件.我想翻转每个句子和匹配句子,这样整个文件最终会像:

A matching sentence Y
A sentence X
A matching sentence N
A sentence Z
Run Code Online (Sandbox Code Playgroud)

有小费吗?

编辑:扩展初始问题

Dimitre Radoulov为最初的问题提供了一个很好的答案.这是主要问题的延伸 - 更多细节:

假设我们有一个有组织的文件(由于Dimitre提供的sed行,文件是有组织的).但是,现在我想按字母顺序组织文件,但只使用第二行的语言(英语).

watashi 
me
annyonghaseyo
hello
dobroye utro!
Good morning!
Run Code Online (Sandbox Code Playgroud)

我想按英文句子(每第2句)按字母顺序排列.鉴于以上输入,这应该是输出:

dobroye utro!
Good morning!
annyonghaseyo
hello
watashi
me 
Run Code Online (Sandbox Code Playgroud)

regex awk sed

12
推荐指数
3
解决办法
4529
查看次数

AWK:返回shell脚本的值

是否可以在bash脚本中使用awk命令将值返回给bash变量,即,如果我的awk脚本执行某些算术运算,我可以将答案存储在变量中,这样就可以在bash脚本中访问它们.如果可能,如何区分多个返回变量.谢谢.

bash awk

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

perl中字段分隔符的变量

在awk中我可以写: awk -F: 'BEGIN {OFS = FS} ...'

在Perl中,相当于FS什么?我想写

perl -F: -lane 'BEGIN {$, = [what?]} ...'
Run Code Online (Sandbox Code Playgroud)

用一个例子更新:

echo a:b:c:d | awk -F: 'BEGIN {OFS = FS} {$2 = 42; print}'
echo a:b:c:d | perl -F: -ane 'BEGIN {$, = ":"} $F[1] = 42; print @F'
Run Code Online (Sandbox Code Playgroud)

两个输出 a:42:c:d

我宁愿不在:Perl BEGIN块中进行硬编码,也可以参考-F选项保存其参数的位置.

perl awk

9
推荐指数
1
解决办法
3271
查看次数

标签 统计

awk ×4

bash ×4

linux ×2

ruby ×2

sed ×2

arrays ×1

copy ×1

cp ×1

csh ×1

expect ×1

find ×1

perl ×1

regex ×1

ruby-on-rails ×1

scripting ×1

shell ×1

tcsh ×1

xargs ×1