我目前有一个成绩列表,我试图将所有成绩改为A,我不知道如何使用sed只改变成绩,因为它不断改变第一个字符和类似的东西那。我试过sed /s/.$/A/'但这只会在字符串的末尾添加一个A. 列表:
> Steve maths A
> Steve english C
> Steve physics E
> Jane maths A
> Jane English B
> Jane physics F
>
由于
答案 0 :(得分:1)
您可以尝试以下方法。我使用了[A-Z]$
,因此无法将最后一行中的>
符号更改为A
。认为成绩后可能会有一些空格。在这种情况下,您可以使用sed 's/[A-Z] *$/A/' file
$ sed 's/[A-Z]$/A/' file
> Steve maths A
> Steve english A
> Steve physics A
> Jane maths A
> Jane English A
> Jane physics A
>
答案 1 :(得分:0)
它不是sed
但是awk
可能会这样做,它会用A
替换最后一个字段
awk '{$NF="A"}1' file
> Steve maths A
> Steve english A
> Steve physics A
> Jane maths A
> Jane English A
> Jane physics A
答案 2 :(得分:0)
您可能需要首先在您的文件上运行dos2unix
或类似文件,但随后:
$ sed 's/[[:upper:]][[:space:]]*$/A/' file
> Steve maths A
> Steve english A
> Steve physics A
> Jane maths A
> Jane English A
> Jane physics A
>
会奏效。