拡張子のないファイルの束にファイル拡張子(.java)を追加するために、非常に単純なbashスクリプトを作成しようとしています。
彼らが拡張子(例えば.txt)を持っていたら、私はこれをします:
#!/bin/bash
for file in `*.txt`;
do mv $file $file.java;
done
ただし、私のファイルには拡張子がありません。ループを作成するにはどうすればよいですか?運*.
が悪かった。
ありがとうございました。
#!/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
ファイル名が妥当である場合、上記の二重引用符はすべて不要であることに注意してください。
試す:
find . -maxdepth 1 -type f | sed 's/^\.\///; /\./d' | while read x; do mv "$x" "$x.java"; done
ls -1 | nawk '/.txt/{old=$0;gsub(/.txt/,".txt.java",$0);system("mv \""old"\" "$0)}'
ここから回答を更新しました
#!/bin/bash
for file in *.txt ; do mv $file `echo $file | sed 's/\(.*\.\)txt/\1java/'` ; done