小编Cra*_*155的帖子

重命名具有各种扩展名的文件

我有一个文件夹,其中包含各种随机文件扩展名以及根本没有扩展名.我希望从文件名中删除扩展名.我觉得我可能会走很长的路,但是我想避免使用两个列表和移动命令,因为它无法在飞行中进行.

我正在使用的代码将创建一个变量来保持扩展名,我试图用sed语法调用rename命令从文件中去除变量.

for i in `ls`; do 
        blah=$(echo $i |awk -F . '{if (NF>1) {print $NF}}')
        echo \.$blah
        rename 's/\.$blah//' $i  

done 
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:全局符号"$ blah"需要在(eval 1)第1行显式包名

此时我将使用前后列构建一个csv,并使用它来删除文件名,但为了将来的参考,我想知道如何实现这一点.

我看到有关使用重命名进行单个或几个扩展的大量帖子:

rename 's/.mp3//' *.mp3
Run Code Online (Sandbox Code Playgroud)

但由于不同扩展的数量......

bash awk rename sed

3
推荐指数
1
解决办法
465
查看次数

管道awk输出添加到变量内部循环

我可能会以错误的方式解决这个问题,但我已经尝试了所有语法,而且我遇到了最接近的错误.

我有一个日志文件,我想在其中过滤到一组行,如下所示:

Files :  1  1  1  1  1
Files :  3  3  4  4  5
Files :  10 4  2  3  1
Files : 254 1  1  1  1
Run Code Online (Sandbox Code Playgroud)

我的代码将使我达到这一点,但是,我想使用awk来执行所有第一个数字列的添加,在这个实例中给出268作为输出(然后在其他列上执行类似的任务).

我试图将awk输出传递到循环中以执行最后一步,但它不会添加值,抛出错误.我认为这可能是由于awk将条目作为字符串处理,但由于bash没有强类型,它应该无关紧要?

无论如何,代码是:

 x=0; 
 iconv -f UTF-16 -t UTF-8 "./TestLogs/rbTest.log" | grep "Files :" | grep -v "*.*" | egrep -v "Files : [a-zA-Z]" |awk '{$1=$1}1' OFS="," | awk -F "," '{print $4}' | while read i;
 do
    $x=$((x+=i)); 
done
Run Code Online (Sandbox Code Playgroud)

错误信息:

-bash: 0=1: command not found
-bash: 1=4: command not …
Run Code Online (Sandbox Code Playgroud)

variables floating-point bash awk addition

3
推荐指数
1
解决办法
833
查看次数

标签 统计

awk ×2

bash ×2

addition ×1

floating-point ×1

rename ×1

sed ×1

variables ×1