Parsing 如何使用一些文本处理(awk等…)在文本文件中的特定行中放置一些字符
我有一个文本文件,它有十六进制值,在一行上有一个值。一个文件有许多这样的值,一个低于另一个。我需要对我需要的值做一些分析,但是在这个文件中,在行号32,47,62,77之前有一种分隔符/标记,比如“#”。。。在这个模式中,两个行号之间的差值始终为15 我正试图用awk做这件事。我尝试了几件事,但没有成功 awk中的命令是什么 任何涉及其他语言/脚本/工具的其他解决方案也是受欢迎的 多谢各位 -广告Python:Parsing 如何使用一些文本处理(awk等…)在文本文件中的特定行中放置一些字符,parsing,text,Parsing,Text,我有一个文本文件,它有十六进制值,在一行上有一个值。一个文件有许多这样的值,一个低于另一个。我需要对我需要的值做一些分析,但是在这个文件中,在行号32,47,62,77之前有一种分隔符/标记,比如“#”。。。在这个模式中,两个行号之间的差值始终为15 我正试图用awk做这件事。我尝试了几件事,但没有成功 awk中的命令是什么 任何涉及其他语言/脚本/工具的其他解决方案也是受欢迎的 多谢各位 -广告Python: f_in = open("file.txt") f_out = open("file
f_in = open("file.txt")
f_out = open("file_out.txt","w")
offset = 4 # 0 <= offset < 15 ; first marker after fourth line in this example
for num,line in enumerate(f_in):
if not (num-offset) % 15:
f_out.write("#\n")
f_out.write(line)
f_in=open(“file.txt”)
f_out=open(“file_out.txt”、“w”)
offset=4#0这就是如何使用AWK的方法
awk 'BEGIN{ i=0; } \
{if (FNR<31) {print $0} \
else {i++; if (i%15) {print $0} else {printf "#%s\n",$0}}\
}' inputfile.txt > outputfile.txt
并将其作为
awk -f comment.awk inputfile.txt > outputfile.txt
希望这将帮助您使用更多AWK。Haskell:
offset=31;
区块大小=15;
main=do
{
(h,t)>)。mapM_uputstrln)$
映射(以块大小为单位)$
takeWhile(非.null)$
迭代(删除块大小)t;
}
@Nik:谢谢你的剧本。这对我有用。我只是做了一个小小的改变FNR@goldenmean,你可以指出你在这个脚本中没有得到的部分,我将尝试更详细地解释它们。
awk -f comment.awk inputfile.txt > outputfile.txt
offset = 31;
chunk_size = 15;
main = do
{
(h, t) <- fmap (splitAt offset . lines) getContents;
mapM_ putStrLn h;
mapM_ ((putStrLn "#" >>) . mapM_ putStrLn) $
map (take chunk_size) $
takeWhile (not . null) $
iterate (drop chunk_size) t;
}