Regex 脚本获取正则表达式后面的字符串,并在每一行上用匹配项替换它
到目前为止,我们已经能够提取模式匹配之间的刺痛,但还不能根据需要将其扩展到打印 我的文件内容:Regex 脚本获取正则表达式后面的字符串,并在每一行上用匹配项替换它,regex,sed,Regex,Sed,到目前为止,我们已经能够提取模式匹配之间的刺痛,但还不能根据需要将其扩展到打印 我的文件内容: my number 12345 string1 string2 my number 789 string1 string2 my number 456789023 string3 string4 下一个命令 sed -e "s/.*number//;s/string.*//" filename 给我输出 12345 789 456789023 我需要帮助来扩展它或更好的方式来打印输出
my number 12345 string1 string2
my number 789 string1 string2
my number 456789023 string3 string4
下一个命令
sed -e "s/.*number//;s/string.*//" filename
给我输出
12345
789
456789023
我需要帮助来扩展它或更好的方式来打印输出
my number 12345 num 12345 string1 string2
my number 789 num 789 string1 string2
my number 456789023 num 456789023 string3 string4
从你的例子中,我得出:
sed -r "s/number (.*) string/number \1 num \1 string/" FILE
这可能适合您:
sed 's/[0-9]\+/& num &/' file
你有没有试过做这件事,或者想过怎么做?你遇到了问题的哪一部分?嗨,谢谢你的样品。当我尝试时,我得到了非法的选择--r@yandd:这是GNU sed版本4.2.1,如果您没有此选项,请屏蔽参数:
sed“s/number\(.*\)string/number\1 num\1 string/”文件
不幸的是,当我尝试此操作时,我得到了文件的内容,因为它可能是您正在使用的sed版本。也许可以尝试:sed的/[0-9][0-9]*/&num&/'文件
或sed-E的/[0-9]+/&num&/'文件