我有两个我需要合并的数组,使用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运算符似乎永远占用
如果我必须在bash shell中检查变量是否为空,我可以使用以下脚本进行检查:
if [ -z "$1" ]
then
echo "variable is empty"
else
echo "variable contains $1"
fi
Run Code Online (Sandbox Code Playgroud)
但我需要将其转换为tcsh shell.
好的,这让我抓狂:
`ls #{"/media/music/Miles Davis"}`
Run Code Online (Sandbox Code Playgroud)
由于"Miles"和"Davis"之间的空间而失败
假设我写了一个ruby脚本,用户将文件路径作为参数传递.如何将其转义并输入shell-out命令.是的,是的,我知道,应该避免炮击.但这是一个人为的例子,我仍然需要这个.
我会这样做system("ls", ARGV[0])
,但它不会将ls的stdout输出作为字符串返回,这是反引号做得好的.
如何逃避在shellout中插入的内容?
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可能有办法做到这一点,这可能会导致文件名(包括空格)时出错.任何指导都非常感谢.
我正在尝试将某些文件从一个目录复制到另一个目录.使用此命令
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'是同一个文件
如何避免此警告消息?
这是期望脚本的一部分
#/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并在控制台上显示.我怎么能隐藏它
我有一个看起来像这样的文本文件:
(-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)
一个简单的方法吗?
任何帮助表示赞赏,
弗雷德
我一直在手工做这个,我不能再做了 - 我有几千行,我认为这是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) 是否可以在bash脚本中使用awk命令将值返回给bash变量,即,如果我的awk脚本执行某些算术运算,我可以将答案存储在变量中,这样就可以在bash脚本中访问它们.如果可能,如何区分多个返回变量.谢谢.
在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
选项保存其参数的位置.