Sed

如何在不知道該字元的情況下用 sed 替換文件中的最後一個字元

  • October 11, 2022

我想替換文件中的最後一個字元。

  1. 我不知道那個角色是什麼。
  2. 我只知道它的位置:文件的結尾。

echo -n -e '1234\n5X78\nX' >> test.file讓我們通過它生成一個文件。

$ cat test.file
1234
5X78
X

最後一行沒有換行符。

當我知道它是時,我知道如何替換最後一個字元X

sed '$s/X/0/' test.file
1234
5X78
0

但正如我所說,我不知道最後一個字元。

使用 sed :

sed 's/.$/0/' test.file

.定義任何字元,並且是$行尾。0因此,在此範例中,您將替換每行的任何最後一個字元。

sed '$s/.$/0/' test.file

在您必須執行的操作之前添加 a$只會將該操作應用於最後一行。

這很簡單,只需使用.$

sed '$s/.$/0/' test.file
  • .是“任何”字元。
  • $是行的結尾。

因此,您將替換最後一行末尾的最後一個字元。

引用自:https://unix.stackexchange.com/questions/720516