我正在尝试反转文件名CREATE UNIQUE NONCLUSTERED INDEX UX_BusinessKey
ON CatastropheRegion (CatastropheNumber, RegionCode)
的组件。
这个sed命令在字符串上执行:
foo@bar
但是将模式传递给$ echo foo@bar | sed 's/\<\([-_a-zA-Z0-9]*\)@\([-_a-zA-Z0-9]*\)\>/\2@\1/'
bar@foo
(名称为AKA perl重命名)不会导致文件被重命名(尽管退出状态为0)
rename
我做错了什么?
答案 0 :(得分:1)
perl
和$ rename -n 's/\b([-_a-zA-Z0-9]*)\@([-_a-zA-Z0-9]*)\b/$2\@$1/' foo@bar
rename(foo@bar, bar@foo)
具有非常不同的正则表达式语法和功能。这就是你可能正在寻找的东西
\b
()
是字边界$1
$2
,\1
是替换部分的反向引用,而不是\2
,@
等-n
需要进行转义,因为它用于数组class Super {
public:
string member = "bla bla";
void doSth() { cout << member; }
};
选项适合干跑