gpt4 book ai didi

linux - 使用 bash 编辑文本文件并显示输出

转载 作者:太空宇宙 更新时间:2023-11-04 05:31:26 26 4
gpt4 key购买 nike

我有一个包含类(class)的文本文件,如下所示:

csc 4567 - Computer Programming
This course is about stuff...blah blah blah
4.0000 credit hours

我需要编写一个 bash 脚本,该脚本获取文本文件并提取必要的信息来显示类(class)编号、类(class)名称、类(class)学分。中间没有空格,只有逗号。类(class)学分为整数。

我可以使用命令行提取信息,但在编写 bash 脚本时我迷失了。我猜我应该将 grep 和 sed 与 bash 一起使用?我不知道。这就是我所拥有的(这显然是不正确的)。任何建议将不胜感激。

while read courses.txt
do
$courseLine=grep -iE '^csc [0-9]{4}'
$creditHours=grep -iE '^[0-4]'
$courseNumber=${courseLine#/s/s*}
$courseName=${courseLine%/s/s*}
printf "$courseNumber,$courseName,$creditHours"
done

上面我想要完成的是:读取文件行将“csc 4567 - Comp prog”保存为类(class)线将“4”保存为学分将类(class)行中第二个空格剩下的所有内容保存为类(class)编号将类(class)行第二个空格右侧的所有内容保存为类(class)名称然后显示我想要的输出。

它应该打印 csc4567,ComputerProgramming,4

是的,这是家庭作业,但由于我是论坛新手,所以不允许我对帖子进行这样的标记。

最佳答案

#/bin/bash
while read line
do
if [[ $line =~ ^(csc\ [0-9]+)\ \-(.*)+ ]]; then
a="$a${BASH_REMATCH[1]},${BASH_REMATCH[2]}"
elif [[ $line =~ ^([0-9]+)([0-9\.\,])+\ credit ]]; then
a="$a,${BASH_REMATCH[1]}\n"
#else
# a="$a,$line"
fi

done < "a1.txt"
echo -e $a

关于linux - 使用 bash 编辑文本文件并显示输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15673806/

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