删除文本文件第二列中的字符串和空格

时间:2018-06-11 10:41:55

标签: linux bash awk sed

我想删除一个特定的字符串" num ="来自 TAB-DELIMITED 文本文件的第二列。

this is a sentence  num= 123.45
this is a phrase    num= 768.90

我知道如何删除" num ="使用sed,但我似乎无法在' ='之后删除空格。我想要的是这个:

this is a sentence  123.45
this is a phrase    768.90

此外,如果第二列数大于500,我想在第三列中标记该行,如下所示:

this is a sentence  123.45  true
this is a phrase    768.90  false

我尝试了什么:

我使用awk将第二列放入其自己的文件中,然后执行此操作:

sed -e s/num=//g -i            # Removes just "num="
sed -e s/num= //g -i           # I get an error 
sed -e s/num=\s//g -i          # No effect

1 个答案:

答案 0 :(得分:1)

使用awk:

$ awk '
BEGIN { FS=OFS="\t" }                  # set delimiters to tab
{ 
    sub(/num= /,"",$2)                 # remove num= 
    print $0,($2+0>500?"true":"false") # output edited record and true/false
}' file
this is a sentence  123.45  false
this is a phrase    768.90  true