【发布时间】:2021-03-07 23:24:21
【问题描述】:
我想更改以下可能长达数千行的文本列表。
目标是将 NET1 更改为 NET66 但仅在具有 Net1 的 12 行上,但不更改 NET10、NET11、NET12、NET13 或任何包含 NET1### 的行。
我正在尝试使用
sed -i s/NET1/NET66/g list
但是它改变了所有行中有一个 NET1 的行(NET10 更改为 NET660) 感谢您的帮助。
317NET1 1 M A01X+004115Y+016850X0280Y S0
017NET1 2 A04X+004115Y+016850X0280Y S0
017NET1 D0160PA00X+004115Y+016850 S0
317NET1 3 M A01X+004500Y+033650X0280Y S0
017NET1 4 A04X+004500Y+033650X0280Y S0
017NET1 D0160PA00X+004500Y+033650 S0
317NET2 5 M A01X+004405Y+020600X0280Y S0
017NET2 6 A04X+004405Y+020600X0280Y S0
017NET2 D0160PA00X+004405Y+020600 S0
327NET2 7 A01X+005010Y+020585X0560Y0220 S0
317NET3 8 M A01X+004405Y+021100X0280Y S0
017NET3 9 A04X+004405Y+021100X0280Y S0
017NET3 D0160PA00X+004405Y+021100 S0
327NET3 10 A01X+005010Y+021085X0560Y0220 S0
317NET4 11 M A01X+003408Y+026300X0500Y S0
017NET4 12 A04X+003408Y+026300X0500Y S0
017NET4 D0340PA00X+003408Y+026300 S0
317NET1 36 A01X+005615Y+024105X0280Y S0
017NET1 37 M A04X+005615Y+024105X0280Y S0
017NET1 D0160PA00X+005615Y+024105 S0
327NET10 38 A01X+005010Y+024085X0560Y0220 S0
317NET10 39 A01X+012305Y+019060X0280Y S0
017NET10 40 M A04X+012305Y+019060X0280Y S0
017NET10 D0160PA00X+012305Y+019060 S0
327NET10 41 A01X+012620Y+018218X0120Y0720 S0
317NET10 42 A01X+013105Y+033405X0280Y S0
017NET10 43 M A04X+013105Y+033405X0280Y S0
017NET10 D0160PA00X+013105Y+033405 S0
327NET10 44 A01X+012505Y+033400X0560Y0220 S0
317NET11 45 A01X+005600Y+024600X0280Y S0
017NET11 46 M A04X+005600Y+024600X0280Y S0
017NET11 D0160PA00X+005600Y+024600 S0
327NET11 47 A01X+005010Y+024585X0560Y0220 S0
317NET11 48 A01X+002208Y+025300X0500Y S0
017NET11 49 M A04X+002208Y+025300X0500Y S0
017NET11 D0340PA00X+002208Y+025300 S0
317NET11 50 A01X+013105Y+033890X0280Y S0
017NET11 51 M A04X+013105Y+033890X0280Y S0
017NET11 D0160PA00X+013105Y+033890 S0
327NET11 52 A01X+012505Y+033900X0560Y0220 S0
317NET11 53 A01X+004505Y+018850X0280Y S0
017NET1 54 M A04X+004505Y+018850X0280Y S0
017NET1 D0160PA00X+004505Y+018850 S0
317NET12 55 M A01X+004365Y+025105X0280Y S0
017NET12 56 A04X+004365Y+025105X0280Y S0
017NET12 D0160PA00X+004365Y+025105 S0
327NET1 57 A01X+005010Y+025085X0560Y0220 S0
317NET13 58 M A01X+004365Y+025600X0280Y S0
017NET13 59 A04X+004365Y+025600X0280Y S0
【问题讨论】:
-
欢迎来到 SO,请在您的问题中以代码的形式添加您的努力,这在 SO 上受到强烈鼓励。
-
我试图使用 Sed -i s/NET1/NET66/g list 但它改变了所有行中有一个 NET1 的行(NET10 更改为 NET660)
-
我可能已经用 sed s/NET1[[:space:]]/NET66/g zz 弄明白了
-
请检查下面的答案,如果有效,请接受/upvote。