有時候需要輸出一個文件夾下的文件名及所以絕對路徑,在網上找到是這個命令
ls | sed "s:^:`pwd`/:"
看命令不難理解,先是ls列出所有文件名,再使用管道符進行后續操作。在管道符之后,是使用sed進行一個替換,^是指字符串開頭的意思,`pwd`是指執行pwd的結果,即當前目錄的絕對路徑。所以是在ls結果字符串的開頭加上了當前的絕對路徑。因為pwd的輸出結果不帶/,所以在后邊又加上了/。
疑問與思考:
正常情況下使用sed進行替換時,都是使用sed "s///"的格式,里邊分別放進去被替換的內容及想要替換的內容,但是這里使用的是:,並且發現使用/還會出錯:
這里好像是因為``這個符號的原因,不是后邊雙斜線的原因,因為后邊雙斜線可以加轉義符進行轉義,但是即使加上也還是不行。
有看到的同學可以在評論解釋一下,謝謝!