clfsy 发表于 2023-02-20 10:46

如何用sed或者awk处理 以下文本的 注释?

cat test1:
aaa1234bbb4321
ccc5432
ddd1234

cat test2:
aaa1234
bbb4321
ccc5432
ddd 6748
eee 898332

脚本处理后希望得到新的 文件是, 从关键字aaa 开始到ddd 这一行前面加上“// ”, 但是ddd关键字的这一行不加这个"//".


test1_new:
// aaa1234
// bbb4321
// ccc5432
ddd1234


test2_new:
// aaa1234
// bbb4321
// ccc5432
ddd 6748
eee 898332

先谢谢大神了。

shang2010 发表于 2023-02-20 21:18

本帖最后由 shang2010 于 2023-02-20 21:21 编辑

逻辑很简单啊,不会写shell脚本,不是第一程序语言


读取一行,判断前几个字符串 ,符合echo 双斜线 append 原来的行

文件结束,就结束

shang2010 发表于 2023-02-20 21:23

如果是匹配关键字而不是行,得用字符一个一个的 判断了。关键你的aabbcc关键字是不是常量呢,c语言比较时候干这个

Super_Niu 发表于 2023-02-25 17:51

sed '/^aaa/,/^ddd/{/ddd/!s#^#//#}' test1 > test1_new

wh7211 发表于 2023-03-01 16:44

回复 1# clfsy


awk '/aaa/{a=1}/ddd/{a=0}{print a?"// "$0:$0>"newfile"}' file
页: [1]
查看完整版本: 如何用sed或者awk处理 以下文本的 注释?