gpt4 book ai didi

linux - 在线替换 bash(使用变量将行替换为新行)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:03 26 4
gpt4 key购买 nike

我正在浏览和读取文件中的行。他们有大量不必要的信息,我想重新格式化这些行以备后用,以便以后可以使用必要的信息。

文件 (file1) 中的示例行

Name: *name* Date: *date* Age: *age* Gender: *gender* Score: *score*

假设我只想从文件中提取性别和年龄并稍后使用

换行

*gender*, *age*

在 bash 中:

    while read line; do
<store variable for gender>
<store variable for age>
<overwrite each line in CSV - gender,age>
<use gender/age as inputs for later comparisons>
done < file1

编辑:条目中没有稳定性。可以使用 echo $line | 找到一个值cut 并使用 [ $line =~ "keyValue"] 找到另一个值,然后设置该值

我正在考虑这样存储两个变量的组合:

newLine="$val1,$val2"

然后使用 sed 内联替换将 $line 替换为 $newLine

还有更好的方法吗?这可能归结为变量的 sed 格式问题。

最佳答案

这将从您发布的样本输入中产生您想要的输出:

$ cat file
Name: *name* Date: *date* Age: *age* Gender: *gender* Score: *score*

$ awk -F'[: ]+' -v OFS=', ' '{for (i=1;i<NF;i+=2) a[$i]=$(i+1); print a["Gender"], a["Age"]}' file
*gender*, *age*

$ awk -F'[: ]+' -v OFS=', ' '{for (i=1;i<NF;i+=2) a[$i]=$(i+1); print a["Score"], a["Name"], a["Date"] }' file
*score*, *name*, *date*

您可以在上面看到以您喜欢的顺序打印您喜欢的任何字段是多么容易。

如果这不是您想要的,请发布一些更具代表性的意见。

关于linux - 在线替换 bash(使用变量将行替换为新行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938126/

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