从管道分隔符文件中的列中删除特殊字符 - 通用

从管道分隔符文件中的列中删除特殊字符 - 通用

我需要创建一个通用脚本来[|!@#$%^&*\]从管道分隔文件中的特定列中删除特殊字符。

例如,我有管道 ( |) 分隔的文件,并且有所有文件共有的“审阅注释”列。我需要从评论评论栏中删除上面给出的所有特殊字符。

我可以使用sed命令从文件中删除特殊字符,但无法创建通用脚本。

答案1

awk脚本搜索第一行中仅包含“审阅注释”的字段,然后删除所有剩余行中该字段中的所有特殊字符。

BEGIN {
    FS="|"
    OFS="|"
}
FNR==1 { 
    for ( N=1 ; N<=NF ; N++ ) { 
        if ( $N ~ /^Review Comments$/ )
            revcol=N
    }
}
FNR>1 {
    gsub("[!@#$%^&*\\\\]","",$revcol) 
}
{ print }

相关内容