相关疑难解决方法(0)

如何根据另一个文件中的列表值从csv文件中删除行?

我有两个文件:

candidates.csv:

id,value
1,123
4,1
2,5
50,5
Run Code Online (Sandbox Code Playgroud)

blacklist.csv:

1
2
5
3
10
Run Code Online (Sandbox Code Playgroud)

我想删除candidates.csv第一列(id)中包含值的所有行blacklist.csv.id始终是数字.在这种情况下,我希望我的输出看起来像这样:

id,value
4,1
50,5
Run Code Online (Sandbox Code Playgroud)

到目前为止,我用于识别重复行的脚本如下所示:

cat candidates.csv | cut -d \, -f 1 | grep -f blacklist.csv -w
Run Code Online (Sandbox Code Playgroud)

这给了我输出

1
2
Run Code Online (Sandbox Code Playgroud)

现在我不知何故需要将这些信息反馈到sed/ awk/ gawk/ ...以删除重复项,但我不知道如何.我有什么想法可以从这里继续吗?或者是否有更好的解决方案?我唯一的限制是它必须在bash中运行.

csv bash awk grep sed

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

如何删除基于bash中另一个文件的行?

现在我有2个文件,如下所示:

>cat file1.txt
john  12  65  0
Nico  3   5   1
king  9   5   2
lee   9   15  0
>cat file2.txt
Nico
king
Run Code Online (Sandbox Code Playgroud)

现在,我想删除第一列中包含file2中名称的行。

Ideal result:
john  12  65  0
lee   9   15  0
Run Code Online (Sandbox Code Playgroud)

谁能告诉我该怎么做?我已经尝试过这样的代码:

for i in 'less file2.txt'; do sed "/$i/d" file1.txt; done
Run Code Online (Sandbox Code Playgroud)

但是它不能正常工作。

linux bash awk sed

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

标签 统计

awk ×2

bash ×2

sed ×2

csv ×1

grep ×1

linux ×1