我将Ubuntu 20.04.2与GNU sed version 4.7结合使用。我有一堆音乐文件被命名奇怪,因为他们没有所有的信息,我指定是在文件名。例如,“布鲁诺火星-纳-布鲁诺火星-懒散Song.aiff”基本上,NA被放在一年的位置,因为这是未知的。我想要做的是重命名所有这些文件,以省略"- NA -“和之前的所有内容,因此该文件是"Bruno Mars - the Lazy Song.aiff”。
这是我的问题,也是我迄今为止尝试过的:我将几个受影响的文件复制到另一个文件夹中,并使用命令sed 's/^.*NA -//' *尝试修复命名,但是我开始从终
我一直在使用这段代码来替换文件中出现的第一个模式:
sed "0,\#pattern#s##replacement#" input.txt > output.txt
为了替换文件中出现的前5个模式,我使用了以下命令:
sed "0,\#pattern#s##replacement#" input.txt > output1.txt
sed "0,\#pattern#s##replacement#" output1.txt > output2.txt
sed "0,\#pattern#s##replacement#"
我有一个简单的文本文件:
>cat a
A=B
使用sed,我试图将其更改为:
setenv A B
不起作用的sed命令是:
>sed -ir 's/([^\=]+)\=(.*)/setenv \1 \2/' a
sed: -e expression #1, char 30: invalid reference \2 on `s' command's RHS
但是,当我删除-i选项时,使用相同的命令词:
>sed -r 's/([^\=]+)\=(.*)/setenv \1 \2/' a
setenv A B
当我使用基本正则
我正在努力弄清楚如何使用sed (我知道我可以使用其他工具,但我想知道如何在sed中使用它,如果它在另一个工具中更有意义,请建议)来编辑包含如下行的文件:
1234561234567809912345612345678 00000999988STRING ONE EX30 0600000001 K XXYY
1122331122334409922334466554433 00000123499STRING TWO EX99 0600000002 K XXYY
以及其他一些不同格式的行。
字符串STRING ONE和STRING TWO位于47-64位置(