在对重启崩溃进行故障排除时,我需要将文件中的每一行打印到输出控制台。我想要做的是运行linux命令行或脚本以将文件中的每一行都记录下来,并在包含该行的打印语句之后放置一个print语句,例如:
while x<100
x=x+1
end while
会成为
while x<100
print "while x<100"
x=x+1
print "x=x+1"
end while
print "end while"
如果打印语句可以包含行号,那就更好了:
while x<100
print "Line 50: while x<100"
x=x+1
print "Line 52:x=x+1"
end while
print "Line 54: end while"
这里的想法是在脚本中找到执行的最后一行,因为这可能是导致设备重启的那一行。目前,我手动执行此操作,添加所有这些行相当耗时。
我知道SED和AWK的存在,但从未使用过它们,尽管我确实经常使用ex / vi / grep / ls / wc在文本文件中进行分类,并且具有基本的Shell脚本编写经验。
编辑:请注意,我的问题中没有任何代码是Shell脚本。我正在寻找有关创建Shell脚本或命令行来处理文件的帮助,以便文件中的每一行后面都包含一条包含前一行的打印语句。
awk '{printf("%s\nprint \"Line %s : %s\"\n",$0,++NR, $0)}' infile > outfile
while x<100
print "Line 2 : while x<100"
x=x+1
print "Line 4 : x=x+1"
end while
print "Line 6 : end while"
$0
是每行的内容,NR
是行/记录号。
对于已经有引号和打印语句的行,请使用以下修改后的awk
命令:
awk '{printf("%s\nprint \"Line %s : ",$0,++NR)} {gsub(/\"/,"\\\"");printf $0"\"\n"}' infile > outfile
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句