【发布时间】:2013-06-30 17:57:24
【问题描述】:
我有两个文件。
第一个(file1)是这样的:
(“文本”行之前总是有一个标题行)
>random header name1
wonderfulstringwhatsoevergoeson
>random header 2
someotherline
...
另一个文件(file2)是file1的修改文件,如:
(标题已被删除,行被打乱,添加了一个新标题)
>name
someotherline
wonderfulstringwhatsoevergoeson
file1 的每一行(不包括标题)都出现在file2 中。
file2 中的行顺序与 file1 不同。
两个文件应保持原样。
file2中的每一行
输出应该是类似的:
(file2的标头可以忽略)
>random header 2
>random header name1
有人知道怎么做吗?
最好的问候
【问题讨论】:
-
我向你保证,它们可以排序。
-
什么意思:不能排序?它们太大了吗?或者它是流,而不是文件本身?这很重要,因为不可排序的原因可能会限制您的选择。一般来说,据我了解 - 您想找到两个文件中唯一的行。这通常可以通过以下方式完成:
cat files* | sort | uniq -u -
@depesz:为了避免无用的管道蛇使用
sort files*|uniq -u。 -
@TrueY - 好吧,好吧。无论如何,我倾向于使用“cat”,因为将这样的行重用于其他任务更简单,而且 cat 开销可以忽略不计,但如果这会让你开心 - 我会使用你的,无猫的版本 :)
-
我认为第二个
file1 looks like this:应该引用file2,不是吗? file2 中的>name怎么样?不需要在输出中显示?
标签: regex perl sed awk pattern-matching