我正在使用 for 回圈,帶有引數 i。每個引數都在末尾包含“.net”,并且在目錄中它們位于一行中,除以一些空格。現在我需要使用 sed 替換來擺脫這些“.net”,但它不起作用。我經歷了不同的選擇,最近的一個是
sed 's/\.(net)//g' $i;
這顯然是不正確的,但我在網上找不到任何關于此的內容。
為了清楚起見,假設我有一個包含 5 個檔案名的目錄
file1.net
file2.net
file3.net
file4.net
file5.net
我希望我的輸出是
file1
file2
file3
file
file5
...有人可以給我一些建議嗎?
uj5u.com熱心網友回復:
您可以使用
for f in *.net; do mv "$f" "${f%.*}"; done
詳情:
for f in *.net;- 遍歷帶有net擴展名的檔案mv "$f" "${f%.*}"net- 使用不帶擴展名的檔案重命名檔案(${f%.*}洗掉所有文本 - 盡可能少 - 從末尾f到第一個.,請參閱引數擴展)。
uj5u.com熱心網友回復:
這是 perl 的作業改名:
rename -n 's/\.net//' *.net
這-n是為了測驗目的。如果輸出看起來適合您,請將其洗掉
uj5u.com熱心網友回復:
這邊走:
sed -i.backup 's/\.net$//g' "$1";
它將為安全創建備份
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/476685.html
下一篇:使用多個引數檢查用戶資訊
