-1
A
答えて
3
for f in *[[:space:]]; do # iterate over filenames ending in whitespace
[[ -e $f || -L $f ]] || continue # ignore nonexistent results (ie. empty glob)
d=$f # initialize destination variable
while [[ $d = *[[:space:]] ]]; do # as long as dest variable ends in whitespace
d=${d:0:((${#d} - 1))} # ...trim the last character from it.
done
printf 'Renaming %q to %q\n' "$f" "$d" >&2 # log what we're going to do
mv -- "$f" "$d" # and do it.
done
参照:
- Parameter expansion、最後の文字(
${varname:start:length}
位置start
から始まる指定された長さのスライスを取る)をトリミングするために使用する構文。 - Globbingは、空白で終わるファイル名を一覧表示するためのメカニズムです。
- The classic
for
loop。グロブ結果を反復処理するために使用されます。
のprintf %q
指定子は戻ってその元の文字列の内容にeval
するような方法で文字列をフォーマットし、bashの拡張である - したがって、それはname\
または'name '
としてスペースで終わる名前を印刷することができるが、何らかの形で、または別の方法で、空白が読者に見えるようにします。
+1
'extglob'パターンを使用するのではなく、なぜループしていますか?' d = $ {f %% +([[:space:]])} ''または 'd = $ {f /%+([[:space :]])/} ' –
+0
ありがとうございます!完璧に動作:) – Musyanon
0
ここには、外部呼び出しのないネイティブのPOSIXシェルソリューションがあります。
#!/bin/sh
for file in *[[:space:]]; do # loop over files/dirs ending in space(s)
[ -e "$file" ] || continue # skip empty results (no-op)
new_file="${file%[[:space:]]}" # save w/out first trailing space char
while [ "$file" != "$new_file" ]; do # while the last truncation does nothing
file="${file%[[:space:]]}" # truncate one more trailing space char
done
# rename, state the action (-v), prompt before overwriting files (-i)
mv -vi -- "$file" "$new_file"
done
関連する問題
- 1. TextMate:末尾の空白を削除して保存します。
- 2. TextBoxから末尾の空白行を削除します。
- 3. NSAttributedStringの末尾に空白をトリム(削除)する方法
- 4. SQL Serverの列から末尾の空白と空白を削除する
- 5. 末尾の空白をR内のgsubで削除する
- 6. フッターの末尾から空白を削除する方法
- 7. Verilogモードで末尾の空白を削除する方法Emacs
- 8. 末尾の空白を削除し、先行スペースとして追加します。
- 9. jqueryを使用して先頭と末尾の空白を削除します
- 10. 削除空白を末尾と終端文字
- 11. TinyMCEテキスト領域の先頭と末尾の空白を削除します。
- 12. 末尾の空白を削除するプログラムは機能しません! :
- 13. Xcode 4.5 - 末尾の空白
- 14. 行末の空白を削除する
- 15. Cygwinは末尾の空白を取り除きます
- 16. 名前空間に空白を含むファイルを削除する
- 17. すべてのXML値から先頭/末尾の空白を削除する
- 18. Excelのセルから先頭と末尾の空白を削除する
- 19. レガシーデータベースの文字フィールドから末尾の空白を削除するGORM
- 20. ANT:文字列から先頭と末尾の空白を削除する
- 21. Java:末尾の空白を印刷
- 22. SQL:Varcharはテキストの末尾に空白を追加します
- 23. 空白の前に空白文字をすべて削除します。
- 24. Gitはマークダウンファイル内の末尾の空白を無視します
- 25. SMARTY:Smartyテンプレートの文字列の先頭または末尾の空白を削除しますか?
- 26. Mercurial diff:末尾の空白を無視しますか?
- 27. 名前付きスコープによる空白フィールドのレコードの削除
- 28. ファイル名の末尾にある\ nを削除する方法
- 29. 変数名の末尾を削除するにはR
- 30. bashシェルの文字列にコンマで空白を削除する
はい、可能です。あなたは何かを試して、コードを掲示し、あなたが持っている問題を示す必要があります –
ファイルの名前を変更しますか? – chepner
@Dejaそうではありません。この質問は、名前ではなくファイルの内容から末尾のスペースを削除することです。 – Aaron