【发布时间】:2020-12-16 17:54:50
【问题描述】:
我有一行需要将分支名称剪切为第一个逗号:
commit 2bea9e0351dae65f18d2de11621049b465b1e868 (HEAD, origin/MGB-322, refs/pipelines/36877)
我需要删掉MGB-322。
一行中的字符数总是不同的。
awk -F "origin/" '{print $2}' - 我就是这样剪的
MGB-322, refs/pipelines/36877)
但是如何告诉它修剪到第一个逗号?
我尝试通过substr 进行操作,
awk -F "origin/" '{print substr ($2,1, index $2 ,)}'
但不清楚如何正确指定索引中的逗号
【问题讨论】:
-
仅用于 GNU awk 的练习:
awk '{print $2}' FS='[()]' file | awk '{print $2}' FS=', ' | awk '{print $2}' FS='/' -
一个简单的
sed命令:sed 's|.*origin/||; s/,.*//' -
除了过滤之外,您似乎可以将格式应用于
git-log(或您用于生成字符串的任何工具)以获得您想要的内容。 -
awk 手册页非常清楚如何在 index() 中指定逗号 -
index($2,",")。