使用 csv 的特定行和列值替换文本文件中的几个字符

德拉夸姆

我有一个.txt包含不同条目文件,例如region1a, region1b, region2a, region2b 等。

我有一个具有不同列和行值的 excel 文件。我想使用特定的行和列值来替换region1文本文件中的say ,并使用不同的列和行值来替换region2,......就像那样。

我不知道如何继续。感谢你的协助。

  • 示例 Excel 文件如下所示:

    示例 Excel 文件如下所示:

  • 文本文件如下所示

    p1 (region1a    region1b -0.1);
    p2 (region1a    region1b 5);
    
    p1 (region2a    region2b -0.1);
    p2 (region2a    region2b 5);
    
  • 预期输出

    p1 (-0.01703    0.08515 -0.1);
    p2 (-0.01703    0.08515 5);
    
    p1 (0.02297 0.08515  -0.1);
    p2 (0.02297 0.08515  5);
    

这是excel文件的示例

Aborussian

从这个 csv ( input.csv)

no,a,b
region1,-0.01703,0.08515
region2,0.02297,0.08515

你可以把它转换成这个 TSV ( out.tsv)

region1a    -0.01703
region1b    0.08515
region2a    0.02297
region2b    0.08515

使用 Miller ( https://github.com/johnkerl/miller ) 并运行

mlr --c2t reshape -i a,b -o item,value then put '$field=$no.$item' then cut -o -f field,value ./input.csv | tail -n +2 >./out.tsv

您拥有的第二个文件是 ( input.txt)

p1 (region1a    region1b -0.1);
p2 (region1a    region1b 5);

p1 (region2a    region2b -0.1);
p2 (region2a    region2b 5);

然后你可以在 bash 脚本中简单地运行一个 for 循环

#!/bin/bash

set -x

cp ./input.txt ./output.txt
while IFS=$'\t' read -r region value; do
    sed -i -r 's/'"$region"'/'"$value"'/g' ./output.txt
done <./out.tsv

output.txt

p1 (-0.01703    0.08515 -0.1);
p2 (-0.01703    0.08515 5);

p1 (0.02297    0.08515 -0.1);
p2 (0.02297    0.08515 5);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 pandas 从 csv 文件中获取列的前几个字符

使用powershell和regex查找和替换文本文件中的多个字符串

替换R中csv文件中一列中的几个字符

使用 CSV 列在文本文件中搜索和替换

使用 CSV 文件中的键->值对替换 XML 中的多个字符串

使用 sed 替换文本文件中 2 个特定行之间的文本

使用javascript替换文本文件中包含特定字符串的整行

如何使用Java将文本文件中包含的整个字符串替换为新行?

如何使用ofstream c ++替换文本文件中的特定值?

如何使用C#在文本文件行中逐个字符地读取

使用列将文本文件转换为csv

使用列将文本文件转换为 CSV

如何使用Windows CMD(而非Powershell)搜索和替换文本文件中包含“ =”字符的字符串

使用VBS替换文本文件中的文本

如何使用python用逗号替换文件中的字符和空格以提取到CSV

我想使用csv文件中的行附加文本文件

如何使用php查找和替换文本文件中的文本?

使用 PowerShell 替换文本文件中一行中间的字符

使用Powershell替换文本文件中的路径

使用javascript将文本文件中的多个字符串替换为一个字符串

使用 python 用任何新行替换文本文件中的一行

如何使用Python替换文本文件中特定位置的单词

Export-csv仅使用文本文件中的最后一行

使用Shell脚本替换文本文件中的字符串无法正常工作

使用PowerShell替换文本文件中的特殊字符

使用Powershell替换文本文件中的扩展ascii字符

如何使用Python替换文本文件多行中的某些字符?

使用Bash脚本查找/替换文本文件中的特殊字符

使用Java查找和替换文本文件中的单词