相关疑难解决方法(0)

在shell脚本中替换另一个字符串的子字符串

我有"我爱Suzi和Marry",我想把"Suzi"改为"Sara".

#!/bin/bash
firstString="I love Suzi and Marry"
secondString="Sara"
# do something...
Run Code Online (Sandbox Code Playgroud)

结果必须是这样的:

firstString="I love Sara and Marry"
Run Code Online (Sandbox Code Playgroud)

bash shell

701
推荐指数
12
解决办法
74万
查看次数

在bash中循环使用多对值

我有10个文本文件,我希望paste每个文件都有一对,这样我就有5个文件.

我尝试了以下方法:

for i in 4_1 5_1 6_1 7_1 8_1
do
for j in 4_2 5_2 6_2 7_2 8_2
do
paste ${i}.txt ${j}.txt > ${i}.${j}.txt
done
done
Run Code Online (Sandbox Code Playgroud)

但是,此代码组合了所有可能的组合,而不是仅仅组合匹配对.

所以我想文件4_1.txt与配对4_2.txt,5_1.txt5_2.txt

bash for-loop paste nested-loops

16
推荐指数
5
解决办法
1万
查看次数

使用sed和mv重命名文件

我想以以下格式重命名文件:

img_MM-DD-YY_XX.jpg

img_MM-DD-YY_XXX.jpg

至:

newyears_YYYY-MM-DD_XXX.jpg

哪里:

  • YYYY =年份
  • MM =月
  • DD =天
  • XXX或XX =照片编号

我想出了这个脚本,但它不起作用:

for filename in ?*.jpg; do
        newFilename=$(echo $filename | \
        sed 's/img_\(.*\)-\(.*\)-\(.*\)_\([0-9][0-9]\)\./newyears_20\3-\1-\2_0\4./;
                s/img_\(.*\)-\(.*\)-\(.*\)_\([0-9][0-9][0-9]\)/newyears_20\3-\1-\2_\4/' -)
        mv $filename $newFilename
done
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

bash sed mv

8
推荐指数
1
解决办法
1万
查看次数

Bash 将文件移动到同名文件夹

如果我将其发布在错误的位置,我提前道歉,我对脚本编写非常陌生,更不用说 stackoverflow 了:

我有许多文件.conf与许多同名但不带.conf扩展名的文件夹位于同一目录中。例如,我的目录如下所示:

136
136.conf
139
139.conf
...
Run Code Online (Sandbox Code Playgroud)

我想.conf用循环将文件移动到相应的文件夹中。我想我可以这样做:

for f in *.conf; do
    dir=${f:0:13}
    mv "$f" "$dir"
done
Run Code Online (Sandbox Code Playgroud)

但我显然做错了什么。我将非常感谢任何人对此的帮助。

bash rename

4
推荐指数
1
解决办法
3730
查看次数

在macOS终端上重命名多个文件

是否可以重命名多个共享相似名称但同时属于不同类型文件的文件?

例:

apple.png

苹果.pdf

apple.jpg

我可以用苹果代替其他东西,例如“梨”吗?如果可能的话,命令将是什么?非常感谢您的宝贵时间!

macos bash shell file-rename

0
推荐指数
1
解决办法
2072
查看次数

标签 统计

bash ×5

shell ×2

file-rename ×1

for-loop ×1

macos ×1

mv ×1

nested-loops ×1

paste ×1

rename ×1

sed ×1