我有一个数据集就像我已经挂在这里:http://pastebin.com/7tpBAquaawk脚本需要修订或可能grep的解决方案(新AWK)
注意前两行没有数据(数字),尽管这样,2号线是与第三条线相关联。同样,第四行与第五行关联,依此类推。
目前,我们有一个awk脚本,对人的阈值高于(低于-1和1以上的任何东西)都行号输出的信息,这是输出:
71
72
88
98
99
.... and so on...
如果号码即使我们需要输出奇数之后的数字(即如果72,然后输出72新的行然后73)
如果数量是奇数,那么我们需要输出偶数之前(即如果99然后输出98新行然后99)。
70
71
72
73
88
89
等等......
同样,这个想法是我们在发现这个噪声数据集,因此,我们需要消除它的研究是有效的。感谢您的任何帮助,您可以提供。
编辑:下面提供的解决方案,我决定把它分解为自己的个人学习以及为其他人谁可以看一下这:
"awk -F'[ ,]' 'NR>2{for (i=2;i<=NF;i++) if ($i<-1 || $i>1) print (NR%2==0) ? NR ORS NR + 1 : NR - 1 ORS NR; next }' file.txt
首先,我们将制作一个基本算法:
if (cur == even)
print cur + \n + prev
else if (cur == odd)
print prev + \n + cur
-F'[ ,]' # a flag for field seperator and designating it with [ ,]
'NR>2 # The total Number of input Records seen so far.
{for (i=2;i<=NF;i++) # for loop starting at 2, ending when greater or equal to NR
if ($i<-1 || $i>1) # when these conditions are met then
print (NR%2==0) # print NR modulus 2
?
NR ORS NR + 1 # current OR next
: NR - 1 ORS NR; # comparisons?
next }' # now go to the next NR
file.txt # save to file.txt
请编辑您的问题降到4-8线的样本数据,所需的输出功率。另外,由于Stackoverflow是关于帮助程序员的,而不是关于为人们做什么的工作,所以请包括迄今为止使用的代码,所获得的错误消息和当前的输出,并标记出来以表明什么是错误的。您可以格式化数据和代码,以便使用输入框顶部的格式化工具进行读取。选择所有的数据和代码,然后点击{}图标。祝你好运。 – shellter
如果它是一个C shell脚本,它需要修改才能使用真实的shell而不是贝壳。 –
什么是“awk c shell脚本”? awk和c-shell是两种不同的脚本语言(后者主要是一个交互式shell)。 –