awk 分割字段格式

发布于 2024-10-15 08:34:05 字数 252 浏览 0 评论 0原文

awk '{split($2,a,"-")};
     {if ($1=="aa") {print "'$var'/"$1"/"a[1]"/"$2" '$var'/bb/"a[1]} 
      else {print "'$var'/"$1"/"a[1]"/"$2" '$var'/aa/"a[1]}}'

你好, $2 均为小写文本。我已将其拆分并希望以大写形式输出 a[1] 。

我该怎么做?

汤姆

awk '{split($2,a,"-")};
     {if ($1=="aa") {print "'$var'/"$1"/"a[1]"/"$2" '$var'/bb/"a[1]} 
      else {print "'$var'/"$1"/"a[1]"/"$2" '$var'/aa/"a[1]}}'

hi,
$2 is all lower case text. I have split it and would like to output a[1] in upper case.

How can I do this ?

Tom

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

难理解 2024-10-22 08:34:05

你可以使用awk的toupper(a[1])

you can use awk's toupper(a[1])

时常饿 2024-10-22 08:34:05

如果使用 AWK 的变量传递,则可以避免复杂且难以阅读的引用。您还可以使用输出字段分隔符。另外,您还有不需要的额外花括号。

awk -v "var=$var" 'BEGIN{OFS="/"}
  {split($2,a,"-"); a[1]=toupper(a[1])
  if ($1=="aa") {print var, $1, a[1], $2 " " var, "bb", a[1]} 
    else {print var, $1, a[1], $2 " " var, "aa", a[1]}}'

You can avoid complex and hard to read quoting if you use AWK's variable passing. You can also make use of the Output Field Separator. Also, you have extra curly braces that you don't need.

awk -v "var=$var" 'BEGIN{OFS="/"}
  {split($2,a,"-"); a[1]=toupper(a[1])
  if ($1=="aa") {print var, $1, a[1], $2 " " var, "bb", a[1]} 
    else {print var, $1, a[1], $2 " " var, "aa", a[1]}}'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文