Shell-Script
從文件中去除尾隨空格
用 sed 刪除尾隨空格的答案有大部分答案,但我想要
sed -i 's/[ \t]*$//' $1
能夠在命令行上將任意數量的文件參數作為 shell 腳本,包括 glob 參數。即假設腳本被稱為
strip_trailing_whitespace
. 然後我希望能夠同時做這兩個strip_trailing_whitespace foo.cc bar.cc
和
strip_trailing_whitespace *.cc *.hh
從表單的所有文件中去除尾隨空格
*.cc
和*.hh
. 不基於上面引用的答案的論點也很好。
$1
是一個位置參數;它將擴展到傳遞給腳本的第一個參數。同樣有$2
,$3
…$9
,${10}
,${11}
,…特殊參數 將
"$@"
擴展為所有位置參數的列表。因此,您可以執行以下操作:
sed -i 's/[ \t]*$//' "$@"
如果您想將全域/模式傳遞給此腳本(或任何程序),則在呼叫腳本時必須對其進行轉義或引用 - 這是 shell 的功能;它會在您的腳本甚至看到它之前擴展任何模式。這種情況不需要那個——shell 可以擴展模式,擴展的結果全部傳遞給
sed
.