Linux命令行特殊字符MBM字符处理?
# 场景描述
遇到同事执行命令始终抱错,以为是role问题,因为Google的这个warning太弱智了
如下
`gcloud iam service-accounts add-iam-policy-binding --role roles/iam.workloadIdentityUser --member "serviceAccount:English-dev.svc.id.goog[namespace/English-dev-sql-sa]" cloudsql-user@chinaunux-dev.iam.gserviceaccount.com --project chinaunux-dev`
报错如下:
ERROR: Policy modification failed. For a binding with condition, run "gcloud alpha iam policies lint-condition" to identify issues in condition.
ERROR: (gcloud.iam.service-accounts.add-iam-policy-binding) INVALID_ARGUMENT: The role name must be in the form "roles/{role}", "organizations/{organization_id}/roles/{role}", or "projects/{project_id}/roles/{role}".
M-BM字符是字节序列0xc2 0xa0的ASCII表示,它是unicode字符A0的UTF8编码,是一个非中断空格字符。使用键序列strl+shift+space,可以在LibreOffice和Microsoft Word文档中插入此字符
根本原因是特殊字符的原因
所以分析看下:
排除特殊字符的时候cat是个好工具,先看下用法
```bash
cat --help
-A, --show-all equivalent to -vET
-v, --show-nonprinting use ^ and M- notation, except for LFD and TAB
```
$ file a.sh
a.sh: Unicode text, UTF-8 text
$ file -bi a.sh
text/plain; charset=utf-8
$ cp a.sh b.sh
$ vi b.sh 手动编辑去掉特殊字符
$ cat -v b.sh
gcloud iam service-accounts add-iam-policy-binding --role roles/iam.workloadIdentityUser --member "serviceAccount:English-dev.svc.id.goog[namespace/English-dev-sql-sa]" cloudsql-user@chinaunux-dev.iam.gserviceaccount.com --project chinaunux-dev
$ file -bi b.sh
text/plain; charset=us-ascii
# 给一些自动替换的办法
$ cp a.sh c.sh
$ sed -i "s/Â / /g" c.sh
$ file -bi c.sh
text/plain; charset=us-ascii
# 搜索下
https://askubuntu.com/questions/357248/how-to-remove-special-m-bm-character-with-sed#!/bin/bash ############################################################################# # SCRIPT: M-BM-Remover.sh # DESCRIPTION: # This script will be able to detect hidden caracter "M-BM-", # And/Or remove this ! # REVISIONS: # 2014/06/11 YG #____________________________________________________________________________ # # PARAMETERS: # > $1 :TARGET, (e.g. ""*.sh"" ) # > $2 :ACTION, (e.g. "remove" ) # > $2 :BACKUP, (e.g. "" ) # ############################################################################# TARGET=$1 ACTION=$2 BACKUP=$3 if [ "$TARGET" = "" ] then echo "Need to choose target file" echo "M-BM-Remover [TARGET] [show/remove] [backup]" echo "Example : M-BM-Remover "*.sh" remove backup" exit fi echo "ACTION = $ACTION"; echo "TARGET = $TARGET"; echo if [ "$ACTION" = "show" ] then for file in $TARGET do if [ "$file" != "M-BM-Remover.sh" ] then echo "Traitement de $file ..." cat -v $file | grep M-BM- NB=`cat -v $file | grep M-BM- | wc -l` echo "Occurence(s) : $NB" fi done fi if [ "$ACTION" = "remove" ] || [ "$ACTION" = "" ] then for file in $TARGET do if [ "$file" != "M-BM-Remover.sh" ] then echo "Traitement de $file ..." NB=`cat -v $file | grep M-BM- | wc -l` if [ "$BACKUP" = "backup" ] then cat $file > $file.bak fi cat -v $file.bak | sed s/M-BM-//g > $file echo "Occurence(s) removed : $NB" fi echo done fi
陈戌源压力大了国际足联敲打中国足协球迷当心国足被全球禁赛最近,一封来自国际足联的信函突然被曝光了出来。该信函原本是在1月30日就发出的,但却在最近几天才被大家知道。信函的主要内容是,国际足联祝贺武汉三镇队夺得中超冠军,同时连带着表扬了一
数据结构并查集简介并查集是一种树形的数据结构,主要处理不交集的查询和合并问题,它有两种操作方式查找(Find)确定当前结点属于哪一个集合合并(Union)将两个不同的集合合并在一起我们通常使用一
经济日报携手京东发布数据数字化助力安防行业发展数据来源京东消费及产业发展研究院近年来,随着人们安全意识的进一步提升,安防产品愈来愈受关注。特别是在互联网大数据人工智能等产业深度融合的大背景下,越来越多的智能安防产品走进千家万户
A股,暴风雨前夜,走势基本确立,接下来行情会这样走今天是2月12号星期日,股市不开盘,我却隐隐感觉到一丝不安,下周的中国股市,必定会遭受一场腥风血雨。挺过去了,就是阳光大道挺不过去,就是无尽的深渊。我认为,一场大战就要打响,所以我
莱万本场数据贡献助攻,2次关键传球,3次射门全部射正北京时间今天凌晨结束的西甲联赛,巴塞罗那10小胜比利亚雷亚尔,莱万多夫斯基贡献助攻。莱万全场数据出场时间90分钟进球0助攻1射正3错过机会1触球41传球1726(65)关键传球2创
iOS16。4即将更新,苹果新服务来了自上月苹果发布iOS16。3正式版以来,至今已经有三个星期没有迎来系统更新了。虽然不清楚苹果迟迟不推出新版本系统的原因,但最新报道显示,苹果可能在为新系统酝酿一波大招。此前苹果就曾
如何对Kubernetes中的IngressNGINX进行监控和预警我们将讨论如何在Kubernetes环境中为Nginxingress设置监控和警报。我们将介绍ingressnginxPrometheus和Grafana的安装和配置,以及关键In
现在2023年了,华为Mate30Pro还值得买吗?很多人的固有认知就是买东西买新不买旧,新款的一定是比旧款的好,新款就一定是性能最好的吗?其实不然,有些老款的机型也并不输新机,老旗舰的性价比一般是很高的,例如华为Mate30Pro
攻占传统合资的最狠一击,它来了今天我开门见山,想和大家再聊聊最近最火的话题之一增程式电动车。大家都知道,这已经不是什么新的技术,新的话题了,关于这个技术路线的讨论也从没停止过。但从最近的情况来看,增程式电动技术
什么程度气囊都直接爆了?!黄师傅是一位网约车司机,他反映,2月9号中午11点多,他开车到杭州古墩路一个地下车库找充电桩,结果车子冲上了人防门的门槛,两个气囊都弹出来了。1818黄金眼开车冲上门槛,损失应该三
以萨技术2021营收3。7亿应收款1。7亿现金10亿拟募15亿中国经济网编者按以萨技术股份有限公司(以下简称以萨技术)日前在上交所网站披露了招股说明书,保荐机构(主承销商)为中国国际金融股份有限公司,保荐代表人为张林冀艾雨。以萨技术表示,自2