我试图添加" *
"如果行以" LOADS*
"开头,则在第72位的字符;该行的最后一个特征不是" *
"并添加一个新行" *
"第1栏的字符。
INPUT
LOAD* 720010013 1.5 1.0300 710010013
LOAD* 730010013 1.5 1.0300 710010013 *
* 10.73 1000001
LOAD* 720010014 1.5 1.0300 710010014 *
*
LOAD* 730010014 1.5 1.0300 710010014 *
* 10.73 1000001
LOAD 10013 1.5 1.0300 10013
输出
LOAD* 720010013 1.5 1.0300 710010013 *
*
LOAD* 730010013 1.5 1.0300 710010013 *
* 10.73 1000001
LOAD* 720010014 1.5 1.0300 710010014 *
*
LOAD* 730010014 1.5 1.0300 710010014 *
* 10.73 1000001
LOAD 10013 1.5 1.0300 10013
答案 0 :(得分:1)
一种方式:
awk '/^LOAD\*/{if (substr($0,73,1)!="*"){x=sprintf("%-72s%c",substr($0,0,72), "*"); $0=x "\n*";}}1' file
答案 1 :(得分:0)
这可能适合你(GNU sed):
sed '/^LOAD\*.*[^*]$/!b;:a;/.\{72\}/!s/$/ /;ta;s/\(.\{72\}\).*/\1*\n*/' file
N.B。使用您的测试数据{73}似乎需要*
。