交错两个(或更多)文本文件的行最简单/最快捷的方法是什么? 例: 文件1: line1.1 line1.2 line1.3 文件2: line2.1 line2.2 line2.3 交错的: line1.1 line2.1 line1.2 line2.2 line1.3 line2.3 当然,编写一个小Perl脚本很容易,可以打开它们并执行任务。 但是我想知道是否有可能用更less的代码逃脱,也许使用Unix工具的单线程?
如何在unix shell脚本中创build一个数组?
我一直在阅读关于/dev/urandom ,据我所知, /dev/random通过利用networking数据包计时等几个事件来创buildencryption随机数。不过,我是否理解正确的/dev/urandom使用一个PRNG,从/dev/random加上一个数字? 或者,只要有一点点就可以使用/dev/random ,当它们用完时,就会从某处收集到一颗种子,然后回到PRNG。
如果我想分配一个字符数组(C),保证足够大,以保存任何有效的绝对path+文件名,它需要多大。 在Win32上,有MAX_PATH定义。 什么是Unix / Linux的等价物?
我有gzip文件列表: file1.gz file2.gz file3.gz 有没有办法连接或gzip这些文件到一个gzip文件, 而不必解压缩它们? 在实践中,我们将在一个networking数据库(CGI)中使用它。 Web将收到来自用户的查询,并根据查询列出所有文件,并将其以batch file的forms呈现给用户。
我很清楚source (aka . )实用程序,它将从文件中获取内容并在当前shell中执行它们。 现在,我正在将一些文本转换成shell命令,然后运行它们,如下所示: $ ls | sed … | sh ls只是一个随机的例子,原文可以是任何东西。 sed也是,只是一个例子来转换文本。 有趣的是sh 。 我pipe任何我得到的东西,它运行它。 我的问题是,这意味着启动一个新的子shell。 我宁愿让命令在我的当前shell中运行。 就像我可以做的source some-file ,如果我有一个文本文件中的命令。 我不想创build一个临时文件,因为感觉脏。 另外,我想开始我的子shell与我目前的shell完全相同的特征。 更新 好的,使用反引号的解决scheme当然是有效的,但是当我检查和改变输出时,我经常需要这样做,所以我更喜欢是否有办法将结果转化为结果。 伤心的更新 嗯, /dev/stdin东西看起来非常漂亮,但是,在更复杂的情况下,它不起作用。 所以,我有这个: find . -type f -iname '*.doc' | ack -v '\.doc$' | perl -pe 's/^((.*)\.doc)$/git mv -f $1 $2.doc/i' | source /dev/stdin 这确保所有.doc文件的扩展名都是小写的。 而顺便说一句,可以用xargs来处理,但那不是重点。 find . […]
这应该很容易:我想运行sed针对文字string,而不是input文件。 如果你想知道为什么,例如编辑存储在variables中的值,不一定是文本数据。 当我做: sed 's/,/','/g' "A,B,C" A,B,C是我想要改成A','B','C的文字 我明白了 Can't open A,B,C 好像它认为A,B,C是一个文件。 我试图pipe道回声: echo "A,B,C" | sed 's/,/','/g' 我得到一个提示。 什么是正确的方法来做到这一点?
我写了一个应用程序打算输出到标准输出。 赋值规范要求创build一个Makefile,当它被调用时, make run > outputFile应该运行该程序并将输出写入一个文件,该文件的SHA1指纹与规范中给出的相同。 我的问题是,我的makefile: … run: java myprogram 还打印运行我的程序(例如java myprogram)到输出文件的命令,以便我的文件包含这多余的行导致指纹错误。 有没有办法执行一个命令没有命令行回应到命令行?
我怎样才能绘制一个unix差异命令的结果,而不是一个差异之后呢? 看下面的例子: diff /tmp/test1 /tmp/test2 1,4c1,2 < asfdsadf < asdfsad < fsaf < fdsadf — > asdfsafdsf > saf 6,8d3 < sadf < asdf < sadf 10d4 < fasd 12,13c6,14 < sadfa < fd — > sadf > sadf > sadf > sadf > sadf > sadf > sadf > sadf > safa 我想有这样的东西: diff […]
在tcsh ,我有以下脚本工作: #!/bin/tcsh setenv X_ROOT /some/specified/path setenv XDB ${X_ROOT}/db setenv PATH ${X_ROOT}/bin:${PATH} xrun -d xdb1 -i $1 > $2 什么是相当于Bash的tcsh setenv函数? 有没有直接的模拟? 环境variables用于查找可执行文件。