没有扩展名的bash文件添加扩展名

时间:2013-01-10 12:21:57

标签: file bash scripting

我正在尝试编写一个非常简单的bash脚本,以便将文件扩展名(.java)添加到一堆没有扩展名的文件中。

如果他们有扩展名(例如.txt),我会这样做:

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

但是,我的文件没有扩展名。如何制作循环?我试了*.没有运气。

谢谢。

4 个答案:

答案 0 :(得分: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

请注意,如果您的文件名合理,上面的所有双引号都是多余的。

答案 1 :(得分:0)

ls -1 | nawk '/.txt/{old=$0;gsub(/.txt/,".txt.java",$0);system("mv \""old"\" "$0)}'

更新了here

的答案

答案 2 :(得分:0)

#!/bin/bash
for file in *.txt ; do mv $file `echo $file | sed 's/\(.*\.\)txt/\1java/'` ; done

答案 3 :(得分:0)

尝试:

find . -maxdepth 1 -type f | sed 's/^\.\///; /\./d' | while read x; do mv "$x" "$x.java"; done
相关问题