我想替换文件中的最后一个字符。
- 我不知道那个角色是什么。
- 我只知道它的位置:文件末尾。
让我们生成一个文件,通过echo -n -e '1234\n5X78\nX' >> test.file
它给出。
$ cat test.file
1234
5X78
X
最后一行没有换行符。
当我知道最后一个字符时,我知道如何替换它X
。
sed '$s/X/0/' test.file
1234
5X78
0
但正如我所说,我不知道最后一个字符。
答案1
使用 sed :
sed 's/.$/0/' test.file
定义.
任何字符,并且$
是行尾。因此,0
在此示例中,您将替换每行的最后一个字符。
sed '$s/.$/0/' test.file
在您必须执行的操作之前添加$
只会将该操作应用于最后一行。
答案2
这很简单,只需使用.$
:
sed '$s/.$/0/' test.file
.
是“任意”字符。$
是该行的末端。
因此,您将替换最后一行末尾的最后一个字符。