Shell-Script

從文件中去除尾隨空格

  • February 22, 2013

用 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.

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