我试图在文本文件中更改成绩,然后使用>>将输出定向到新的文本文件运算符而不是覆盖旧文件。
但是,文本文件中有大量其他学生的结果,并且文件以这种方式排列,每行包含一个学生的一个考试的结果,因此有多行一名学生描绘不同考试的不同考试成绩。
我如何专门搜索等级为A,B,C,D"在我的名字和#34; Joe Bloggs"旁边,在不同的行上?
ty men
答案 0 :(得分:0)
您可以使用grep
命令:
cat grades.txt | grep "Joe Bloggs" | grep "A\|B\|C\|D" >> output.txt
如果您想将B, C, or D's
旁边的所有Joe Bloggs
更改为所有A's
,您可以像这样使用sed:
cat grades.txt | grep "Joe Bloggs" | grep "A\|B\|C\|D" | sed 's/\(B\|C\|D\)/A/g' >> output.txt
使用awk
:
cat grades.txt | grep "Joe Bloggs" | grep "A\|B\|C\|D" | awk '{gsub(/B|C|D/,"A");print}' >> output.txt
使用perl
:
cat grades.txt | grep "Joe Bloggs" | grep "A\|B\|C\|D" | perl -e "s/B|C|D/A/" -p >> output.txt