我正在尝试从多个文件名中删除多余的字符\
。有没有办法做到这一点?比提前。令人惊讶的是,当我输入ls -l时,我没有在文件名中看到反斜杠。
输入
文件1
asg19.mail14_+_\:38033421-38033567.mail
file2的
asg19.mail14_+_\:38088821-38033567.mail
输出
文件1
asg19.mail14_+_:38033421-38033567.mail
file2的
asg19.mail14_+_:38088821-38033567.mail
答案 0 :(得分:1)
我在这里看不到awk会有什么帮助,但以下bash代码段应该有效:
for file in *\\*; do
mv "${file}" "${file/\\/_}"
done
你只需要用另一个反斜杠来逃避反斜杠。
此代码适用于名称为
的文件asg19.mail14_+_\:38033421-38033567.mail
但你说在做ls -l
时没有看到反斜杠,而我确实看到了。
答案 1 :(得分:1)
这将抑制file1,file2,...中字符串的所有反斜杠:
tmp=$(mktemp)
for file in file1 file2
do
awk '{gsub("\\\\","");print}' $file > $tmp
cat $tmp > $file
done