我有一个看起来像这样的文件 (file.txt)
AYOnanl3knsgv2StRr44 CRITICAL","component MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr45 CRITICAL","component MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr46 CRITICAL","component MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr47 CRITICAL","component MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnanmeknsgv2StRr48 MAJOR", MMP-FileService gbhasrajkn@vir.com CODE_SMELL
AYOnanm-knsgv2StRr4- BLOCKER", MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnanm6knsgv2StRr49 MAJOR", MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnannKknsgv2StRr4_ BLOCKER", MMP-FileService nipun.dith@wt.com BUG
AYODwmuBknsgv2StRqkr MINOR", MMP-FileService sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqkt MINOR", MMP-FileService sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqks MINOR", MMP-component sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqku MINOR", MMP-component sam.curren@wt.com CODE_SMELL
AYODsI7Fknsgv2StRqac MAJOR", MMP-component sam.curren@wt.com CODE_SMELL
AYODsI7Nknsgv2StRqad MAJOR", MMP-component sam.curren@wt.com CODE_SMELL
AYODsI-Qknsgv2StRqai MAJOR", MMP-component sam.curren@wt.com CODE_SMELL
我必须删除第二列中不需要的字符
","组件
和 ",
然后预期输出
AYOnanl3knsgv2StRr44 CRITICAL MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr45 CRITICAL MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr46 CRITICAL MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr47 CRITICAL MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnanmeknsgv2StRr48 MAJOR MMP-FileService gbhasrajkn@vir.com CODE_SMELL
AYOnanm-knsgv2StRr4- BLOCKER MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnanm6knsgv2StRr49 MAJOR MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnannKknsgv2StRr4_ BLOCKER MMP-FileService nipun.dith@wt.com BUG
AYODwmuBknsgv2StRqkr MINOR MMP-FileService sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqkt MINOR MMP-FileService sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqks MINOR MMP-component sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqku MINOR MMP-component sam.curren@wt.com CODE_SMELL
AYODsI7Fknsgv2StRqac MAJOR MMP-component sam.curren@wt.com CODE_SMELL
AYODsI7Nknsgv2StRqad MAJOR MMP-component sam.curren@wt.com CODE_SMELL
AYODsI-Qknsgv2StRqai MAJOR MMP-component sam.curren@wt.com CODE_SMELL
这是我尝试过的
cat file.txt | tr -d '",' | sed 's/component//'
然后我得到的输出
YOnanl3knsgv2StRr44 CRITICAL MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr45 CRITICAL MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr46 CRITICAL MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr47 CRITICAL MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnanmeknsgv2StRr48 MAJOR MMP-FileService gbhasran@virtusa.com CODE_SMELL
AYOnanm-knsgv2StRr4- BLOCKER MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnanm6knsgv2StRr49 MAJOR MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnannKknsgv2StRr4_ BLOCKER MMP-FileService nipun.dith@wt.com BUG
AYODwmuBknsgv2StRqkr MINOR MMP-FileService sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqkt MINOR MMP-FileService sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqks MINOR MMP- sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqku MINOR MMP- sam.curren@wt.com CODE_SMELL
AYODsI7Fknsgv2StRqac MAJOR MMP- sam.curren@wt.com CODE_SMELL
AYODsI7Nknsgv2StRqad MAJOR MMP- sam.curren@wt.com CODE_SMELL
AYODsI-Qknsgv2StRqai MAJOR MMP- sam.curren@wt.com CODE_SMELL
我执行的 shell 命令也适用于其他列(在本例中它也适用于第 3 列)这就是我遇到的问题。有没有办法只为应用命令 第二列?
谁能帮我解决这个问题?提前致谢!
注意:我不允许使用 jq 或其他脚本语言,如 JavaScript、Python 等
最佳答案
它可以在单个 sub
中完成:
awk '{sub(/"[^[:blank:]]*$/, "", $2)} 1' file | column -t
AYOnanl3knsgv2StRr44 CRITICAL MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr45 CRITICAL MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr46 CRITICAL MMP-FileService James.curren@wt.com CODE_SMELL
AYOnanl3knsgv2StRr47 CRITICAL MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnanmeknsgv2StRr48 MAJOR MMP-FileService gbhasrajkn@vir.com CODE_SMELL
AYOnanm-knsgv2StRr4- BLOCKER MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnanm6knsgv2StRr49 MAJOR MMP-FileService nipun.dith@wt.com CODE_SMELL
AYOnannKknsgv2StRr4_ BLOCKER MMP-FileService nipun.dith@wt.com BUG
AYODwmuBknsgv2StRqkr MINOR MMP-FileService sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqkt MINOR MMP-FileService sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqks MINOR MMP-component sam.curren@wt.com CODE_SMELL
AYODwmuBknsgv2StRqku MINOR MMP-component sam.curren@wt.com CODE_SMELL
AYODsI7Fknsgv2StRqac MAJOR MMP-component sam.curren@wt.com CODE_SMELL
AYODsI7Nknsgv2StRqad MAJOR MMP-component sam.curren@wt.com CODE_SMELL
AYODsI-Qknsgv2StRqai MAJOR MMP-component sam.curren@wt.com CODE_SMELL
这里:
"[^[:blank:]]*$
:匹配输入中以"
开头的文本 ($2
) 并替换它空字符串。column -t
仅用于表格输出,如果您不需要,可以将其删除。
关于linux - 如何删除文件中不需要的字符(使用 shell 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74202535/