我有一个文件,其中有重复模式。原来的行是:
blahblah=xxx blahblahblah(xxx): blah=xxx blah=xxx blah=xxx blah=xxx a0=20a8c20 a1=20a8dc0 a2=20a70a0 a3=7ffcb25e7b60 items=3 ppid=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah="xxx" blah="xxx"
我需要一个命令将该行转换为此输出(删除 a0 到 ppid 但不删除 ppid):
blahblah=xxx blahblahblah(xxx): blah=xxx blah=xxx blah=xxx blah=xxx ppid=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah=xxx blah="xxx" blah="xxx"
请注意,a0 和 ppid 之间的字符数量不同。
请解释你的解决方案,我只是一个试图学习的学生
作为对评论的回应:
是的,我正在为文件目录执行此操作。目标是一个遍历这些文件的脚本。我尝试使用
sed -e 's/a0=<missing code>items=//'
但我无法弄清楚丢失的代码中应该包含什么。文件的一般模式是相同的。
答案1
sed 's/a0.*ppid/ppid/g' yourFile
s 表示替换
它将以 a0 开头并以 ppid 结尾的字符串替换为 ppid
句点表示任何字符
星号表示 0 个或多个直到 ppid 的任何字符
g 表示对整个字符串执行此操作
输入man sed
终端以了解更多信息