2

拡張子のないファイルの束にファイル拡張子(.java)を追加するために、非常に単純なbashスクリプトを作成しようとしています。

彼らが拡張子(例えば.txt)を持っていたら、私はこれをします:

#!/bin/bash
for file in `*.txt`; 
do mv $file $file.java; 
done

ただし、私のファイルには拡張子がありません。ループを作成するにはどうすればよいですか?運*.が悪かった。

ありがとうございました。

4

4 に答える 4

4
#!/bin/bash
for file in *; do
  mv "$file" "$file".java; 
done

拡張子がまだ付いていないファイルのみを移動する場合は、次のことを試してください。

#!/bin/sh
for file in *; do
  test "${file%.*}" = "$file" && mv "$file" "$file".java;
done

ファイル名が妥当である場合、上記の二重引用符はすべて不要であることに注意してください。

于 2013-01-10T12:25:08.827 に答える
0

試す:

find . -maxdepth 1 -type f | sed 's/^\.\///; /\./d' | while read x; do mv "$x" "$x.java"; done
于 2013-01-10T12:47:53.913 に答える
0
ls -1 | nawk '/.txt/{old=$0;gsub(/.txt/,".txt.java",$0);system("mv \""old"\" "$0)}'

ここから回答を更新しました

于 2013-01-10T12:29:29.960 に答える
0
#!/bin/bash
for file in *.txt ; do mv $file `echo $file | sed 's/\(.*\.\)txt/\1java/'` ; done
于 2013-01-10T12:30:28.867 に答える