bash - 如何在单列中使用 "sed"

标签 bash awk sed multiple-columns

我想在单列中将一个字符串替换为另一个字符串。

输入:

A.a     1
A.b     .
A.c     1
A.d     1

期望的输出:

A.a     1
A.b     -9
A.c     1
A.d     1

使用 sed 's/\./-9/g' input > output 它将所有 . 修改为 -9,并且这个这是我得到的:

A-9a     1
A-9b     -9
A-9c     1
A-9d     1

如何仅在单个列 ($2) 上使用 sed

最佳答案

遵循awk可能会对您有所帮助。

awk 'FNR==2{$2="-9"} 1' OFS="\t"   Input_file

上面只会将 $2 值更改为 -9,以防您需要交叉验证第二行的第二个字段是 并且您想要做出改变,那么只有下面的内容可能会对您有所帮助。

awk 'FNR==2 && $2=="."{$2="-9"} 1' OFS="\t"   Input_file

或者

awk '$2=="."{$2="-9"} 1' OFS="\t"   Input_file

附加 > temp_file && mv temp_file Input_file 以获取 Input_file 本身的输出。

关于bash - 如何在单列中使用 "sed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49316247/

相关文章:

linux - 在字符串中使用文件中的匹配

linux - 同一 sed 命令上的两个模式匹配

awk - 我如何使用 sed 在 unix 中删除整列数据?

linux - 一个 bash 脚本,用于解压 linux 子目录中的所有文件

linux - BSUB 将多个 matlab 作业集中到一个集群中?

regex - bash 正则表达式 : How to replace all non-whitespace characters with a letter?

file - awk 检查文件是否存在

java - 如何用sed删除Java项目的注释?

C sed 行号在同一行

python - 如何分发我的 Python/shell 脚本?