我是bash并且使用bash编写一个自动化的新手。我有这样的情况,我需要将/ *放在行的开头,将* /放在行的末尾(位置70,71),用于7到21之间的所有行。
在更改之前,它应该看起来像
APF ADD
DSNAME(FELE00.SFEKAUTH)
VOLUME(C2PRD1)
变更之后应该看起来像
/*APF ADD */
/*DSNAME(FELE00.SFEKAUTH) */
/*VOLUME(C2PRD1) */
然后我想用其他方式替换/ *和* / with spaces
答案 0 :(得分:0)
以下命令可以解决问题。
使用名为raw
的文件第一个sed会将/ *放在行的开头,删除那里的双倍空格
然后用空格填充空格到71个字符长(第二个sed工作需要)
第二个sed改变70. char到*和71. char到/
运算符>>将输出重定向到名为processed
的文件cat raw | sed 's/^ /\/\*/g' | awk -F "$" '{printf "%-71s\n", $1}' | sed 's/./\//70;s/./\*/71' >> processed