我是动漫的狂热粉丝,通常都会看有字幕的动画。有时,底层人会像西方人一样对名字进行排序,将名字放在姓氏之前。我真的不喜欢这样,但是手动浏览字幕文件只是为了颠倒名称的顺序会浪费时间。我想使用 Awk(或其他标准 Linux 实用程序,如果 Awk 不是正确的选择)来搜索文本中以大写字母开头且始终一起出现的单词(二元组),并反转它们的顺序。空格和符号应该是单词的分隔符。这应该足以导致不会出现误报。
例如, 的所有实例Miu Matsuoka
都应转换为Matsuoka Miu
.
答案1
尝试这个,
sed -r -e "s:([A-Z][a-z]+)\s([A-Z][a-z]+):\2 \1:g" subfile > newsubfile
或者您也可以将原始文件更改为
sed -i -r -e "s:([A-Z][a-z]+)\s([A-Z][a-z]+):\2 \1:g" subfile
正则表达式([A-Z][a-z]+)\s([A-Z][a-z]+)
选择任意 2 个以大写字母开头的连续单词并sed
反转它们的顺序。看看这是否符合您的所有测试用例。我进行了一些测试并且成功了。