仅在bash中第一列的大写到小写

时间:2012-03-15 19:06:28

标签: bash

如何将bash中的第一列更改为小写? 例如: ABC | DEF | GHI 至 ABC | DEF | GHI

感谢

4 个答案:

答案 0 :(得分:5)

echo "ABC|DEF|GHI" | sed 's/\([A-Z]*\)\|/\L\1/'

输出:

abc|DEF|GHI

答案 1 :(得分:4)

awk -F"|" '{l = $0; sub($1, "", l); print tolower($1) l}' yourFile

答案 2 :(得分:0)

这可能对您有用:

echo "ABC|DEF|GHI" | sed 's/[^|]*/\L&/'
abc|DEF|GHI

答案 3 :(得分:0)

看Ma,没有 sed

e="ABC|DEF|GHI"
prefix=${e%%|*}
postfix=${e#*|}
echo ${prefix,,}"|"${postfix}

结果:

abc|DEF|GHI
  • ${e%%|*}从最后删除匹配| *的所有内容
  • ${e%|*}从最后删除一个匹配
  • ${e##*|}删除与* |匹配的所有内容从一开始
  • ${e#*|}删除一个匹配* |从一开始
  • ${prefix,,}生成小写
  • ${prefix^^}生成大写

有关详情,请参阅man bashParameter expansion部分。