Awk:Select 仅在一列中包含数字的行并将其相乘为 1000
Awk : Select only row with digits in a column and multiply those for 1000
AIM
我想将第 $3 列的行数(0.16 和 -0.45)乘以 1000!
这避免了将 N/A 乘以 0,在 N/A 所在的位置生成 0!
我正在尝试生成的命令行!
awk -F"\t" '{OFS="\t"}{print , , ~/^[0-9]{3}$*1000/}' > out-put.txt
awk -F"\t" '{OFS="\t"}{print , , ~/^%[0-9]%/$*1000}' > out-put.txt
文件
我有一个包含 3 列的文件:
abc cat 0.16
lmm fil N/A
lmd ful -0.45
....continue
搜索输出
abc cat 160
lmm fil N/A
lmd ful -450
....continue
使用您显示的示例,请尝试以下 awk
代码。使用三元运算符检查第三个字段是否不是 N/A
然后乘以 1000 否则保持原样。
awk '{=!="N/A"? * 1000:} 1' Input_file
或 如果您的 Input_file 是制表符分隔的,请尝试以下操作:
awk 'BEGIN{FS=OFS="\t"}{=!="N/A"? * 1000:} 1' Input_file
你可以试试这个awk
awk '!="N/A"{*=1000}1' $file | column -t
输出
abc cat 160
lmm fil N/A
lmd ful -450
这是一个 awk
解决方案,它在与 1000
相乘之前检查 </code> 是否为数字:</p>
<pre><code>awk 'BEGIN{FS=OFS="\t"} == +0 { *= 1000} 1' file
abc cat 160
lmm fil N/A
lmd ful -450
AIM
我想将第 $3 列的行数(0.16 和 -0.45)乘以 1000! 这避免了将 N/A 乘以 0,在 N/A 所在的位置生成 0!
我正在尝试生成的命令行!
awk -F"\t" '{OFS="\t"}{print , , ~/^[0-9]{3}$*1000/}' > out-put.txt
awk -F"\t" '{OFS="\t"}{print , , ~/^%[0-9]%/$*1000}' > out-put.txt
文件
我有一个包含 3 列的文件:
abc cat 0.16
lmm fil N/A
lmd ful -0.45
....continue
搜索输出
abc cat 160
lmm fil N/A
lmd ful -450
....continue
使用您显示的示例,请尝试以下 awk
代码。使用三元运算符检查第三个字段是否不是 N/A
然后乘以 1000 否则保持原样。
awk '{=!="N/A"? * 1000:} 1' Input_file
或 如果您的 Input_file 是制表符分隔的,请尝试以下操作:
awk 'BEGIN{FS=OFS="\t"}{=!="N/A"? * 1000:} 1' Input_file
你可以试试这个awk
awk '!="N/A"{*=1000}1' $file | column -t
输出
abc cat 160
lmm fil N/A
lmd ful -450
这是一个 awk
解决方案,它在与 1000
相乘之前检查 </code> 是否为数字:</p>
<pre><code>awk 'BEGIN{FS=OFS="\t"} == +0 { *= 1000} 1' file
abc cat 160
lmm fil N/A
lmd ful -450