1


0

拡張子 ".tex"を削除する必要があります。

./1-aoeeu/1.tex
./2-thst/2.tex
./3-oeu/3.tex
./4-uoueou/4.tex
./5-aaa/5.tex
./6-oeua/6.tex
./7-oue/7.tex

以下のツールを使ってください。

  1. セッドアンドファインド

  2. ルビー

  3. Python

私のかわいそうな試み:

$見つけます。 -maxdepth 2 -name "* .tex" -ok mv `sed 'の@ .tex @@ g' {}` {}

5 回答


4


同じことをするためのPythonスクリプト:

os.path、shutilのインポート

def remove_ext(arg、dirname、fnames):argfiles = fのfのfに対するfのargfiles =(os.path.join(dirname、f)):shutil.move(f、f [: - len(arg)])

os.path.walk( '/ some / path'、remove_ext、 '.tex')


1


1つの方法、必ずしも最速ではありません(ただし少なくとも最短時間で開発されます)。

``

*。c * / *。c * / * / *。cのiのpax>。 do ...> j = $(echo "$ i" | sed '/ \。c $ //')...> echo mv "$ i" "$ j" ...> done

maxdepthが2なので、同等です。 スクリプトは現時点で(テスト目的のために) mv`コマンドをエコーバックしていて、Cファイルを処理しています(テスト用の tex`ファイルがありませんので)。

あるいは、findをそのすべての機能で使用することができます。

``

pax>検索 -maxdepth 2 -name '* .tex' |行を読みながら。 do ...> j = $(echo "$ line" | sed '/ \。tex $ //')...> mv "$ line" "$ j" ...> done


0


あなたのベースディレクトリから bash、` find`そして `mv`を使います。

$で私のために(見つける。 -type f -maxdepth 2 -name "* .tex"); do mv $ i $(echo "$ i" | sed 's | .tex $ ||');終わった

'' '' '

*バリエーション2 *こちらの他の回答に基づく

見つけます。 -type f -maxdepth 2 -name "* .tex" |行を読みながら。 do mv "$ line" "$ {line %%。tex}";終わった

'' '' '

シモンズ:私は ` . 'を `pax`でエスケープすることについての部分を得ませんでした…


0


「for i in」を使用すると、「パラメータが多すぎる」というエラーが発生する可能性があります。

より良い方法は次のプロセスにパイプ検索することです。

例:

見つけます。 -type f -name "* .tex" |ファイルの読み込み中にmv $ file $ {file %% tex} gが実行されました

(注:ファイルをスペースで処理しないでください)


0


いくつかのディストリビューションに同梱されている優れたPerlの名前変更スクリプトがあります。 (正式にどこにあるのかわかりませんが、 これです)。 あなたの名前がLarry Wall( `man rename`の著者セクション)によって書かれたかどうか確認してください。 それはあなたに何かのようなことをさせるでしょう:

見つけます。 [-maxdepth 2] -name "* .tex" -execリネーム 's / \。tex //' '{}' \;

実行するアクションは1つだけなので、-execを使用するのが最も簡単です。また、名前の変更を複数回実行してもコストがかかりません。 あなたが複数のことをする必要があるならば、 "read read"フォームを使ってください:

見つけます。 [-maxdepth 2] -name "* .tex" | texfileを読みながら。 's / \。tex //' $ texfileの名前を変更します。終わった

一度だけ呼び出したいものがある場合は、次のようにします。

見つけます。 [-maxdepth 2] -name "* .tex" | xargsは 's / \。tex //'の名前を変更する

最後の1つは、名前の変更がどれほど便利かを明確にします - すべてがすでに同じ場所にある場合は、すぐに正規表現の名前変更ができます。