bash - 如何创建保留具有特定值的列名的文件
问题描述
我有一个文件,其中第一列采用某些值(在本例中为 4)
product,0 0,no way
brand,0 0 0,detergent
product,0 0 1,sugar
negative,0 0 1, sight
city,0 0 2,grind
我想构建 3 个文件,一个具有 3 个列值,一个具有 2 个列值,一个具有 1 个列值。*此外,这些值之一必须是“产品”
文件 3.txt
product,0 0,no way
brand,0 0 0,detergent
product,0 0 1,sugar
negative,0 0 1, sight
文件2.txt
product,0 0,no way
brand,0 0 0,detergent
product,0 0 1,sugar
文件1.txt
product,0 0,no way
product,0 0 1,sugar
这个过程可以在 awk 中自动化吗?此时我正在手动制作带有列名的文件以保留并使用它
awk 'NR==FNR{v[$1]; next} $1 in v' values.txt FS=, datafile
解决方案
你可以试试
#! /usr/bin/awk -f
BEGIN { FS=","}
{
if (length(w) < m && !($1 in w)) w[$1]=1
if ($1 in w) print
}
chmod 它并像调用它一样
$ ./script.awk -v m=3 datafile > file3.txt
其中m
是唯一值的数量
编辑
环形
for m in $(seq 100); do ./script.awk -v m=$m datafile > file$m.txt; done
推荐阅读
- python - 在python中使用RegEx将某个字符替换为以下模式
- c# - Azure 身份验证服务在发布后不起作用
- javascript - 反应 routings-url 的变化。但不渲染组件。刷新页面时完美呈现
- tensorflow - 同一训练集上的Tensorflow变量值不同
- android - Android Spen 库中的内存泄漏
- hadoop - 更改 Ambari 的默认 API 路径
- python - Pandas xlabel 不显示值
- swift - 是否可以链接到 Swift 文档中的另一个函数?
- jenkins - Jenkins 配置到 DSL 代码转换
- python - KeyError:张量流上的“max_overlaps”ver Faster R-CNN