我有"我爱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) 我有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.txt带5_2.txt等
我想以以下格式重命名文件:
img_MM-DD-YY_XX.jpg
img_MM-DD-YY_XXX.jpg
至:
newyears_YYYY-MM-DD_XXX.jpg
哪里:
我想出了这个脚本,但它不起作用:
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)
任何帮助将不胜感激.
如果我将其发布在错误的位置,我提前道歉,我对脚本编写非常陌生,更不用说 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)
但我显然做错了什么。我将非常感谢任何人对此的帮助。
是否可以重命名多个共享相似名称但同时属于不同类型文件的文件?
例:
apple.png
苹果.pdf
apple.jpg
我可以用苹果代替其他东西,例如“梨”吗?如果可能的话,命令将是什么?非常感谢您的宝贵时间!
bash ×5
shell ×2
file-rename ×1
for-loop ×1
macos ×1
mv ×1
nested-loops ×1
paste ×1
rename ×1
sed ×1