Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing 如何使用一些文本处理(awk等…)在文本文件中的特定行中放置一些字符_Parsing_Text - Fatal编程技术网

Parsing 如何使用一些文本处理(awk等…)在文本文件中的特定行中放置一些字符

Parsing 如何使用一些文本处理(awk等…)在文本文件中的特定行中放置一些字符,parsing,text,Parsing,Text,我有一个文本文件,它有十六进制值,在一行上有一个值。一个文件有许多这样的值,一个低于另一个。我需要对我需要的值做一些分析,但是在这个文件中,在行号32,47,62,77之前有一种分隔符/标记,比如“#”。。。在这个模式中,两个行号之间的差值始终为15 我正试图用awk做这件事。我尝试了几件事,但没有成功 awk中的命令是什么 任何涉及其他语言/脚本/工具的其他解决方案也是受欢迎的 多谢各位 -广告Python: f_in = open("file.txt") f_out = open("file

我有一个文本文件,它有十六进制值,在一行上有一个值。一个文件有许多这样的值,一个低于另一个。我需要对我需要的值做一些分析,但是在这个文件中,在行号32,47,62,77之前有一种分隔符/标记,比如“#”。。。在这个模式中,两个行号之间的差值始终为15

我正试图用awk做这件事。我尝试了几件事,但没有成功

awk中的命令是什么

任何涉及其他语言/脚本/工具的其他解决方案也是受欢迎的

多谢各位

-广告

Python:

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;
}