特定のディレクトリに複数のファイルがあります。これらはファイルです。
idex.1.ebwt idex.2.ebwt idex.3.ebwt idex.4.ebwt idex.rev.1.ebwt idex.rev.2.ebwt
残りの名前を同じにidex
保つためにファイル名を変更したいと思います。基本的にindex
私idex
index
一行のコマンドはありますか?
ベストアンサー1
単純な-loopといくつかのシェルマジックを使ってfor
これを行うことができます。
for file in idex.*; do
mv "$file" "index${file#idex}"
done
はい、1行で入れることもできます。 ;)
${var#pattern}
$var
行間を削除して評価しますpattern
(ここではpattern
モードglob(7)
)。 4つのバリエーションがあります(POSIX互換)。
${var#pattern}
$var
先行pattern
(貪欲ではない)を排除するために評価します。${var##pattern}
$var
先行(貪欲)を排除するために評価しますpattern
。${var%pattern}
結果は、$var
末尾が除去されたpattern
(欲張りなし)と評価されます。${var%%pattern}
結果は、$var
末尾が除去された状態で評価されますpattern
(貪欲)。
非貪欲と貪欲の違いは、 に設定すると評価されるが$var
評価foo.bar.baz
さ${var%.*}
れるという点です。検索になるからです。foo.bar
${var%%.*}
foo
${var%.*}
最短パターンマッチ.*
(だから最後 .
最後)${var%%.*}
どこで検索するか最長一つ(したがって最初 .
終わり)。
どのバージョンが貪欲なバージョンであり、欲張りなバージョンかを覚えておくのに役立つように、次のことを覚えておいてください。もっと長く(#
各2回%
)検索もっと長くマッチ。