Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
Linux 删除文本文件第二列中的字符串和空格_Linux_Bash_Awk_Sed - Fatal编程技术网

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

Linux 删除文本文件第二列中的字符串和空格,linux,bash,awk,sed,Linux,Bash,Awk,Sed,我想从制表符分隔的文本文件的第二列中删除特定字符串“num=” this is a sentence num= 123.45 this is a phrase num= 768.90 我知道如何使用sed删除“num=”,但似乎无法删除“=”之后的空格。我想要的是: this is a sentence 123.45 this is a phrase 768.90 此外,如果第二列的编号大于500,我希望在第三列中标记该行,如下所示: this is a sentence

我想从制表符分隔的文本文件的第二列中删除特定字符串“num=”

this is a sentence  num= 123.45
this is a phrase    num= 768.90
我知道如何使用sed删除“num=”,但似乎无法删除“=”之后的空格。我想要的是:

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
使用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

您自己尝试了什么?我使用awk将第二个文件放入它自己的文件中,然后这个sed-es/num=//g-I。这不会删除“num=”后面的空格,我会丢失第一列。我尝试了sed-es/num=\s//g-I,但这不起作用。我也尝试了sed-e s/num=//g-I,但出现了一个错误。堆栈溢出不是一种代码编写服务。请出示你的密码。由于堆栈溢出对您隐藏了关闭原因:寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。