Linux
用 txt 字元串替換最後一個點之後的任何字元串
如何替換最後一個“。”之後的任何字元串 到txt
例如
filter.bash sum.sh portG.py run.doK.ksh
預期成績
filter.txt sum.txt portG.txt run.doK.txt
sed 's/[^.]*$/txt/'
或者僅對包含至少一個的行執行此操作
.
(不更改myfile
為txt
):sed 's/\.[^.]*$/.txt/'
為了避免替換
.bashrc
為.txt
:sed 's/\(..*\.\).*/\1txt/'
(這一次,我們靠的貪婪
.*
來替換最後一個.
之後的部分)。為了避免替換
foo.d/myfile
為foo.txt
:sed 's|\([^/]\.\)[^./]*$|\1txt|'
.txt
還要為沒有任何副檔名的文件添加副檔名(包括更改.bashrc
為.bashrc.txt
但不觸及空行或以 結尾的行/
):sed 's|\([^/]\)\.[^./]*$|\1|;s|[^/]$|&.txt|'