【发布时间】:2020-04-08 17:07:57
【问题描述】:
我有一个如下的 dat 文件。
1436667|disne-2h.xco.caDIAS0000000000897089-DIAS0000000000897090|""|""|""|""|....
|disne-2h.xco.caDIAS0000000000897089-DIAS0000000000897091|""|""|||
这里“|”是字段分隔符。
我有一个场景如下。
我需要检查第一列是否为空,如果第二列不为空,我必须用第二列替换并添加一个字符串。
我尝试了类似下面的方法。
awk -F '|' '$2 && !$1{ $1=$2 }1' Asset.csv
上述命令正在删除字段分隔符并获得不带字段分隔符的输出。如果我像下面这样添加字符串。
awk -F '|' '$2 && !$1{ $1=$2+"_ABC" }1' Asset.csv
第一列是 0。
能否请您提出方法并在第一列中添加一个字符串。
提前致谢。
【问题讨论】:
-
假设第一个字段为空,如第二行..输出应为 .disne-2h.xco.caDIAS0000000000897089-DIAS0000000000897091_ABC|disne-2h.xco.caDIAS0000000000897089-DIAS0000000 |||
-
@anubhava:我一直在尝试使用 awk .. 它没有成功..
-
我在下面发布了一个 awk 解决方案。请关注
BEGIN{FS=OFS="|"}和单条条件+动作块。
标签: linux shell unix replace scripting