小编Pie*_*rre的帖子

条件管道

假设我有以下管道:

cmd1 < input.txt |\
cmd2 |\
cmd4 |\
cmd5 |\
cmd6 |\
(...) |\
cmdN > result.txt
Run Code Online (Sandbox Code Playgroud)

在某些条件下,我想cmd3cmd2和之间添加一个cmd4。有没有办法创建一种条件管道而不将结果保存cmd2到临时文件中?我会想到这样的事情:

cmd1 < input.txt |\
cmd2 |\
(${DEFINED}? cmd3 : cat ) |\
cmd4 |\
cmd5 |\
cmd6 |\
(...) |\
cmdN > result.txt
Run Code Online (Sandbox Code Playgroud)

shell pipe shell-script

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

GNU 屏幕:将分离的会话打印到标准输出

我只想快速浏览一下我分离的 GNUscreen会话。是否可以将当前内容转储到 stdout ?就像是

screen --print SESSION_NAME > file.txt
Run Code Online (Sandbox Code Playgroud)

logs gnu-screen stdout

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

unix 的标准键/值数据存储

我知道unix的键/值库(berkeleydbgdbmredis ... )。但是在我开始编码之前,我想知道是否有一个适用于 unix 的标准工具可以让我执行以下操作:

$ tool -f datastore.db put "KEY" "VALUE"
$ tool -f datastore.db put -f file_key_values.txt
$ tool -f datastore.db get "KEY"
$ tool -f datastore.db get -f file_keys.txt
$ tool -f datastore.db remove "KEY"
$ etc...
Run Code Online (Sandbox Code Playgroud)

谢谢

database

17
推荐指数
5
解决办法
4287
查看次数

加入:“文件 2 未按排序顺序”

我有两个文件 _jeter3.txt 和 _jeter1.txt

我检查过它们都使用第 20 列排序 sort -c

sort -t '     ' -c -k20,20 _jeter3.txt
sort -t '     ' -c -k20,20 _jeter1.txt
#no errors
Run Code Online (Sandbox Code Playgroud)

但是当我想要join两个文件时出现错误,它说第二个文件没有排序:

join -t '   ' -1 20 -2 20 _jeter1.txt _jeter3.txt > /dev/null
join: File 2 is not in sorted order
Run Code Online (Sandbox Code Playgroud)

我不明白为什么。

cat /etc/*-release #FYI
openSUSE 11.0 (i586)
VERSION = 11.0
Run Code Online (Sandbox Code Playgroud)

更新:使用 ' sort -f' 和join -i(均不区分大小写)修复了问题。但这并不能解释我最初的问题。

更新:排序和连接的版本:

> join --version
join (GNU coreutils) 6.11
Copyright (C) 2008 …
Run Code Online (Sandbox Code Playgroud)

sort join

15
推荐指数
6
解决办法
5万
查看次数

compgen :忽略大小写

我正在尝试按照此处所述实现自定义bash 完成。然而,似乎是区分大小写的。有没有办法让它在那种情况下不区分大小写compgen

bash autocomplete

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

file(1) 和 magic(5) :描述其他格式

我可以使用filemagic( http://linux.die.net/man/5/magic ) 来覆盖其他一些已知格式的描述吗?

例如,我想描述以下格式:

那是“只是”文本文件

或者

那只是一个以幻数开头的压缩文件 BAM\1

?

你知道任何例子吗?

是否可以提供自定义 C 代码来测试文件而不是使用魔术格式?

file-command file-format

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

file(1) 和 magic(5) :对结果进行优先级排序

我的问题如下:file(1) 和 magic(5) :描述其他格式

我想描述一个 FASTA 序列(http://en.wikipedia.org/wiki/FASTA_format

它可能是一个DNA 序列(只有 ATGC)

>header
ATGCTAGCATAGCATCGATGCTGTAGCTACGTAGCTACGTCTACG
Run Code Online (Sandbox Code Playgroud)

一个“神奇”的模式将是

>.*\n[ATGC]*
Run Code Online (Sandbox Code Playgroud)

蛋白质序列(也包含 ATGC 的 ACDEFGHIKLMNPQRSTVWYBZX)

>header
AHITKLMNPQRGHIKLMNPQRC
Run Code Online (Sandbox Code Playgroud)

一个“神奇”的模式将是

>.*\n[ACDEFGHIKLMNPQRSTVWYBZX]*
Run Code Online (Sandbox Code Playgroud)

但是每当我使用这些正则表达式时,文件都会告诉我它是一种蛋白质,因为它与第二个正则表达式匹配。有没有办法对结果进行优先排序?有没有办法优先考虑,比如“如果匹配,不要尝试任何其他模式?”。

file-command regular-expression

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

复制目录+重命名

我想从以下位置复制一个目录:

path1/dir1
Run Code Online (Sandbox Code Playgroud)

path2/dir2
Run Code Online (Sandbox Code Playgroud)

我第一次调用

cp -r path1/dir1 path2/dir2
Run Code Online (Sandbox Code Playgroud)

没问题,dir2是在path2下创建的

ls path2/dir2
Run Code Online (Sandbox Code Playgroud)

bu 第二次,在 path2/dir2 下创建 dir1

ls path2/dir2/dir1
Run Code Online (Sandbox Code Playgroud)

我可以只使用 获得正确的行为cp吗?(= 不调用rm -f path2/dir2)

cp

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