gpt4 book ai didi

linux - 脚本不会覆盖 csv 文件

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

<分区>

我正在处理一个管理学生组的 csv 文件。我制作了一个获取三个参数的脚本:学生 ID、组类型和组 ID。有两种类型的组,问题组或实践组。

问题是我希望脚本修改 csv 文件,特别是组。

所以我的输入看起来像

./script.sh niubXXXXXX problems A00

此输入会将 ID 为“niubXXXXXX”的学生更改为问题组 A00。所以问题是我创建了一个脚本,它实际上设法正常工作(它确实是我想做的)但不能覆盖 csv 文件以更改它。

#!/bin/bash

if [ ! $# -eq 3 ]
then
echo "Falta argument. Usage: ./script5.sh directori "
exit 1
fi
alumne=$1
columna=$2
grupCanvi=$3

if [ "$columna" = "problemes" ]
then
awk -F';' -v OFS=';' -v id=$alumne -v new_group=$grupCanvi
'{if($1==id)$3=new_group}1' ./alumnes.csv > ./alumnes.csv

echo "Grup de problemes modificat"
fi

if [ "$columna" = "practiques" ]
then
awk -F';' -v OFS=';' -v id=$alumne -v new_group=$grupCanvi
'{if($1==id)$2=new_group}1' ./alumnes.csv > ./alumnes.csv

echo "Grup de pràctiques modificat"
fi

所以问题是当我像这样放置代码时:

awk -F';' -v OFS=';' -v id=$alumne -v new_group=$grupCanvi 
'{if($1==id)$2=new_group}1' ./alumnes.csv >> ./alumnes.csv

(附加,而不是覆盖)

它工作正常,就像我想要的那样将它附加到我最后一个列表的下面,但是,当我尝试覆盖它时,csv 文件变成空的。

csv 文件结构如下所示:

IUB;Grup Pràctiques;Grup Problemes
niubXXXXXXXX;B00;CF0
niubXXXXXXXX;A00;CF0
niubXXXXXXXX;C00;CF0
niubXXXXXXXX;F00;AB0

知道当我尝试覆盖 csv 文件时会发生什么吗?

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