IO重定向到另一个文件

时间:2015-02-05 21:58:33

标签: linux shell redirect io io-redirection

我试图在文本文件中更改成绩,然后使用>>将输出定向到新的文本文件运算符而不是覆盖旧文件。

但是,文本文件中有大量其他学生的结果,并且文件以这种方式排列,每行包含一个学生的一个考试的结果,因此有多行一名学生描绘不同考试的不同考试成绩。

我如何专门搜索等级为A,B,C,D"在我的名字和#34; Joe Bloggs"旁边,在不同的行上?

ty men

1 个答案:

答案 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