gpt4 book ai didi

linux - 如何将特定列转换为标题大小写

转载 作者:行者123 更新时间:2023-12-03 08:18:00 25 4
gpt4 key购买 nike

我想出了这段代码:

cut -d';' -f4 columns.csv | sed 's/.*/\L&/; s/[a-z]*/\u&/g'

它实际上完成了第四列的工作,但我丢失了其他列..

我尝试过失败:

cut -d';' -f4 columns.csv | sed -i 's/.*/\L&/; s/[a-z]*/\u&/g'

那么,如何将更改应用于文件中的特定列并保持其他列不变?

假设 columns.csv 内容是:

TEXT;more text;SoMe MoRe TeXt;THE FOURTH COLUMN;something else

那么,预期输出应该是:

TEXT;more text;SoMe MoRe TeXt;The Fourth Column;something else

最佳答案

GNU sed:

sed -ri 's/;/&\r/3;:1;s/\r([^; ]+\s*)/\L\u\1\r/;t1;s/\r//' columns.csv

更新:

sed -i 's/; */&\n/3;:1;s/\n\([^; ]\+ *\)/\L\u\1\n/;t1;s/\n//' columns.csv

将 anchor \r (\n) 放置在字段 4 的开头。我们编辑整个单词并将 anchor 移动到下一个单词的开头。只要 substitution 命令中的模式匹配,就会执行按标签 t1 跳转:1。移除 anchor 。

关于linux - 如何将特定列转换为标题大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68757092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com