gpt4 book ai didi

linux - 遍历一个表并将该表的信息附加到另一个文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:29 25 4
gpt4 key购买 nike

这是我的第一篇文章,我对 bash 编码还很陌生。我们在我工作的地方运行了一些实验,为了在 gnuplot 中绘制它,我们需要将 react 标签附加到结果。

我们有一个看起来像这样的文件:

G135b   CH2O+HCO=O2+C2H3
R020b 2CO+H=OH+C2O
R021b 2CO+O=O2+C2O

和一个结果文件(抱歉,我现在无法访问),其中显示文件的第一列相同,后跟多个值。它们的顺序不同。现在我想遍历结果文件并获取第一列的值,在显示的文件中搜索它并将 react 标签附加到该行。

  1. 我如何遍历生成文件的所有行并将第一列的值取到临时变量中?我想像这样使用这个变量:

    grep -r '^$var' shownfile | awk '{print $2}'

    (像这样返回:CH2O+HCO=O2+C2H3)

  2. 如何将该行的结果附加到结果文件?

编辑:我还写了一个脚本来从一个看起来像这样的文件开始:

G135b : 0.178273 C H 2 O + H C O = O 2 + C 2 H 3

为此:

G135b CH2O+HCO=O2+C2H3

即:

#!/bin/bash
file=$(pwd)
cd $file
# echo "$file"
cut -f1,3 $file/newfile >>tmpfile
sed -i "s/://g" tmpfile
sed -i "s/ //g" tmpfile
cp tmpfile newfile
  1. 如何在文件中执行剪切命令?就像 sed 的 -i。我的解决方法非常丑陋,因为它会在当前目录中创建另一个文件。

谢谢你:)

最佳答案

join 命令可以在这里工作,它将对 2 个文件执行内部连接,每个文件的第一列(默认情况下)。

$ cat data
G135b CH2O+HCO=O2+C2H3
R020b 2CO+H=OH+C2O
R021b 2CO+O=O2+C2O

$ cat result_file
G135b a b c
R020b a b
R021b a b x y z

$ join data result_file
G135b CH2O+HCO=O2+C2H3 a b c
R020b 2CO+H=OH+C2O a b
R021b 2CO+O=O2+C2O a b x y z

关于linux - 遍历一个表并将该表的信息附加到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37563761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com