linux - unix中的子命令替换多个符号,如何?

标签 linux unix sed

我正在使用以下命令比较两个文件,其中第 3 列具有 abc.txt 和另一个 +abc.txt。它通过忽略加号 (+) 给我正确的输出。

我如何在我的代码中添加多个符号,以便它也忽略加号 (+) 符号以及感叹号 (!) 符号。

第三列可能有

+abc.txt
!abc.txt   --> So It have to ignore + and ! symbol while comparing with abc.txt


FNR==0 {next}
NR==FNR {a[$1]=$0; next} {k=$3; sub(/^\+/,"",k)} k in a {split(a[k], b)
print $1,$2,b[2],$3,b[3],b[4],b[5],$4,$5,$6,$7; delete a[k] }
END {for(k in a) print a[k] > "Compare_unmatched.txt"}

踪迹:

{k=$3; sub(/^+/,"",k);sub(/^!/,"",k)} - 使用了这一行,但没有给我正确的结果。

你能给我建议解决方法吗?谢谢!

最佳答案

尝试 sub("^[+!]", "", k)。不确定代码的其余部分。

关于linux - unix中的子命令替换多个符号,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45566936/

相关文章:

Linux Socket::connect 和 QT::connect 混合

java - 为什么我的 java 图形滞后这么多?

c - 在 Kill() 中实现 EINVAL、EPERM、ESRCH

linux - 删除名称中有空格的目录中最旧的文件

c - 如何创建与现有目录具有相同访问权限的目录?

linux - Linux Kernel 是否允许一个进程消耗 100% 的内存?

python - 检测 VGA 显示器何时插入

regex - 如何使用动态列对日志输出进行 grep

postgresql - 什么是更改 PostgreSQL 配置的可靠方法,尤其是在脚本中移动其数据目录?

linux - 使用shell脚本解析复杂的字符串