相关疑难解决方法(0)

使用Bash脚本删除重复的条目

我想从文本文件中删除重复的条目,例如:

kavitha= Tue Feb    20 14:00 19 IST 2012  (duplicate entry) 
sree=Tue Jan  20 14:05 19 IST 2012  
divya = Tue Jan  20 14:20 19 IST 2012  
anusha=Tue Jan 20 14:45 19 IST 2012 
kavitha= Tue Feb    20 14:00 19 IST 2012 (duplicate entry) 
Run Code Online (Sandbox Code Playgroud)

有没有办法使用Bash脚本删除重复的条目?

期望的输出

kavitha= Tue Feb    20 14:00 19 IST 2012 
sree=Tue Jan  20 14:05 19 IST 2012  
divya = Tue Jan  20 14:20 19 IST 2012  
anusha=Tue Jan 20 14:45 19 IST 2012
Run Code Online (Sandbox Code Playgroud)

bash shell

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

删除重复行而不进行排序

我在Python中有一个实用程序脚本:

#!/usr/bin/env python
import sys
unique_lines = []
duplicate_lines = []
for line in sys.stdin:
  if line in unique_lines:
    duplicate_lines.append(line)
  else:
    unique_lines.append(line)
    sys.stdout.write(line)
# optionally do something with duplicate_lines
Run Code Online (Sandbox Code Playgroud)

这个简单的功能(uniq无需先排序,稳定排序)必须作为简单的UNIX实用程序提供,不是吗?也许是管道中过滤器的组合?

询问的原因:在我无法从任何地方执行python的系统上需要此功能

shell scripting filter uniq

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

无用的猫吗?

这可能是许多常见问题解答 - 而不是使用:

cat file | command
Run Code Online (Sandbox Code Playgroud)

(这被称为无用的猫),正确的方式应该是:

command < file
Run Code Online (Sandbox Code Playgroud)

在第二,"正确"的方式 - 操作系统不必产生额外的过程.
尽管知道这一点,我继续使用无用的猫有两个原因.

  1. 更美观 - 我喜欢数据仅从左到右均匀移动.而且它更容易更换cat别的东西(gzcat,echo,...),添加第二个文件或插入新的过滤器(pv,mbuffer,grep...).

  2. 我"觉得"在某些情况下可能会更快.更快,因为有2个进程,1st(cat)执行读取而第二个执行任何操作.它们可以并行运行,这意味着有时可以更快地执行.

我的逻辑是否正确(第二个原因)?

shell command-line cat

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

如何从Bash中的数组中获取唯一值?

我和这里的问题差不多.

我有一个包含aa ab aa ac aa ad等的数组.现在我想从这个数组中选择所有独特的元素.认为,这将是简单的用sort | uniqsort -u因为他们在其他问题中提到,但没有在数组中改变...的代码是:

echo `echo "${ids[@]}" | sort | uniq`
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

linux arrays bash unique

75
推荐指数
11
解决办法
7万
查看次数

如何在linux中的文本文件中捕获重复的条目

文本文件:

1 1
2 2
3 3
1 1

我想抓住1 1重复的东西

linux grep

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

如何从文件中删除重复的行

我有一个生成测试并预测输出的工具.我的想法是,如果我失败了,我可以将预测与实际输出进行比较,看看它们分歧的地方.问题是实际输出包含两行,这令人困惑diff.我想删除重复项,以便我可以轻松地比较它们.基本上,类似sort -u但没有排序的东西.

是否有任何unix命令行工具可以执行此操作?

unix command-line duplicates

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

如何删除两个文件之间的公共行而不进行排序?

我有两个没有分拣的文件有一些共同点.

FILE1.TXT

Z
B
A
H
L
Run Code Online (Sandbox Code Playgroud)

FILE2.TXT

S
L
W
Q
A
Run Code Online (Sandbox Code Playgroud)

我用来删除公共行的方式如下:

sort -u file1.txt > file1_sorted.txt
sort -u file2.txt > file2_sorted.txt

comm -23 file1_sorted.txt file2_sorted.txt > file_final.txt
Run Code Online (Sandbox Code Playgroud)

输出:

B
H
Z
Run Code Online (Sandbox Code Playgroud)

问题是我想保留file1.txt的顺序,我的意思是:

期望的输出:

Z
B
H
Run Code Online (Sandbox Code Playgroud)

我试过的一个解决方案是循环读取file2.txt的所有行:

sed -i '/^${line_file2}$/d' file1.txt
Run Code Online (Sandbox Code Playgroud)

但如果文件很大,性能可能会很糟糕.

  • 你喜欢我的想法吗?
  • 你还有其他选择吗?

sorting bash optimization sed comm

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

如何将 WebVTT 格式转换为纯文本?

这是 WebVTT 的示例

WEBVTT
Kind: captions
Language: en
Style:
::cue(c.colorCCCCCC) { color: rgb(204,204,204);
 }
::cue(c.colorE5E5E5) { color: rgb(229,229,229);
 }
##

00:00:00.060 --> 00:00:03.080 align:start position:0%
 
<c.colorE5E5E5>okay<00:00:00.690><c> so</c><00:00:00.750><c> this</c><00:00:01.319><c> is</c><00:00:01.469><c> a</c></c><c.colorCCCCCC><00:00:01.500><c> newsflash</c><00:00:02.040><c> page</c><00:00:02.460><c> for</c></c>

00:00:03.080 --> 00:00:03.090 align:start position:0%
<c.colorE5E5E5>okay so this is a</c><c.colorCCCCCC> newsflash page for
 </c>

00:00:03.090 --> 00:00:08.360 align:start position:0%
<c.colorE5E5E5>okay so this is a</c><c.colorCCCCCC> newsflash page for</c>
<c.colorE5E5E5>Meraki<00:00:03.659><c> printing</c><00:00:05.120><c> so</c><00:00:06.529><c> all</c><00:00:07.529><c> we</c><00:00:08.040><c> need</c><00:00:08.130><c> to</c><00:00:08.189><c> do</c></c>

00:00:08.360 --> 00:00:08.370 align:start position:0%
<c.colorE5E5E5>Meraki printing so all we need to …
Run Code Online (Sandbox Code Playgroud)

youtube-dl webvtt

8
推荐指数
2
解决办法
2281
查看次数

作者Git Squash - 所有作者都提交到一个提交

我正在尝试将许多提交压缩成一个,问题是我需要通过作者(名称或电子邮件)来做.

案子:

可以说我有一个名为feature-a的分支,在这个分支中我有许多作者的许多提交.如何将作者(例如电子邮件)的所有提交压缩到一个提交中.我想这样做能够将所有作者提交合并到master中.

这里有什么帮助?

提前致谢

git git-rebase

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

如何从Bash历史文件中删除重复的命令?

我配置了自己的 .bash_myhistory

export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "

export HISTFILE=~/.bash_myhistory
PROMPT_COMMAND="history -a; history -r; $PROMPT_COMMAND"
Run Code Online (Sandbox Code Playgroud)

当我运行history它时显示了许多重复输出:

 $ history | grep 'git rebase'
   75  [2018-05-23 16:39:39] git rebase -p dev_hypermouse 
  168  [2018-05-23 19:27:39] man git rebase 
  547  [2018-05-25 19:01:44] git rebase master 
  639  [2018-05-25 20:24:52] git rebase master 
  869  [2018-05-28 14:07:33] git rebase xxx
  921  [2018-05-28 16:12:20] git rebase dash_v2 
  922  [2018-05-28 16:12:33] man git rebase
  925  [2018-05-28 16:13:21] man git rebase
  927  [2018-05-28 16:15:42] git rebase …
Run Code Online (Sandbox Code Playgroud)

bash

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