修改具有特定条件的特定列上的特定值

修改具有特定条件的特定列上的特定值

如果第 4 列的当前值为 0(零)并且仅当第 1 列具有关键字“video”时,我需要将第 4 列修改为 11。

pX23hdzzs2     20181020     0samp     11
pXDvideo32     20181020     0samp     0
pXDvideo32     20181020     0samp     11
pXDvideo32     20181020     0samp     11
pXUwezp882     20181020     0samp     0
pXDvideo32     20181020     0samp     11
pXD7Hedss2     20181020     0samp     11
pXDvideo32     20181020     0samp     0
pXDvideo32     20181020     0samp     11
pXDvideo32     20181020     0samp     0

我在将第 1 列过滤为通配符时遇到问题视频带 * 的不被接受。

我使用的脚本是:

$ awk -F "\t" '$1=="*video*" && $4==0 {print $1"\t"$2"\t"$3"\t"$4}' filename > filename_new

答案1

awk '$1 ~ /video/ && $4=="0" {print}' 文件

pXDvideo32 20181020 0samp 0

pXDvideo32 20181020 0samp 0

pXDvideo32 20181020 0samp 0

看看是否能解决您的问题。

相关内容