将特定位置的第一个小写字母大写

时间:2015-03-06 17:39:29

标签: awk sed

我有很多.htm文件。标题标签有类似的东西 19.10.2014 - pila和它总是不同的文字。 怎么可能把皮拉做成皮拉。 我需要的是一个在线工具,它可以找到文件夹中的所有.htm文件,并将标题部分的第一个字母更改为大写? 到目前为止我有:

awk -i inplace '{a=FILENAME;sub(/\.htm$/,"",a);gsub(/<title>[^<]*<\/title>/,"<title>"a"</title>")}1' *.htm

该在线人将标题标签原始文本替换为实际文件名。 所以基本上我需要一个awk的子(我认为)。 有可能吗?怎么做?

1 个答案:

答案 0 :(得分:0)

你需要这样的东西(使用GNU awk for 3rd arg来匹配()):

gawk '
match($0,/(.*<title>.*-\s+)(.)([^<]*<\/title>.*)/,a) {
    $0 = a[1] toupper(a[2]) a[3]
}1' *.htm