Linux 删除文本文件第二列中的字符串和空格
我想从制表符分隔的文本文件的第二列中删除特定字符串“num=”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
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,但出现了一个错误。堆栈溢出不是一种代码编写服务。请出示你的密码。由于堆栈溢出对您隐藏了关闭原因:寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。