Linux 如何查找文件中具有特殊字符的列
我想找出文件中哪列有特殊字符 例如,我有以下数据:Linux 如何查找文件中具有特殊字符的列,linux,shell,unix,awk,Linux,Shell,Unix,Awk,我想找出文件中哪列有特殊字符 例如,我有以下数据: 11|abc|ac♠|12 12|aac|be•|2♣ 13|cj♦|jkd|32 期望输出: 1|3 2|3|4 3|2 我想要记录编号以及具有特殊字符的列编号 您没有定义特殊角色。我假设您指的是超出正常ASCII范围的任何内容。尝试: $ awk -F'|' '{r=""; for (i=1;i<=NF;i++)if($i ~ /[^\t -~]/) r=r OFS i; if (r) print NR r} ' OFS='|'
11|abc|ac♠|12
12|aac|be•|2♣
13|cj♦|jkd|32
期望输出:
1|3
2|3|4
3|2
我想要记录编号以及具有特殊字符的列编号 您没有定义特殊角色。我假设您指的是超出正常ASCII范围的任何内容。尝试:
$ awk -F'|' '{r=""; for (i=1;i<=NF;i++)if($i ~ /[^\t -~]/) r=r OFS i; if (r) print NR r} ' OFS='|' File
1|3
2|3|4
3|2
你认为什么是“特殊人物”?到目前为止你尝试了什么?此外,输出似乎与输入不匹配。您使用的是什么字符编码?
awk -F'|' '
{
r=""
for (i=1;i<=NF;i++)
if ($i ~ /[^\t -~]/)
r=r OFS i
if (r)
print NR r
} ' OFS='|' File