linux - 命令 tr 上下提取

标签 linux uppercase lowercase tr

如果我想转换 - 字符之后的文本部分,比如 我可以使用 tr 命令吗?

使用此命令将函数应用于所有文本

cat file.txt | tr [: upper:] [: lower:]

01103I-GG102
01103I-GG102
01103I-GG102
01103I-GG102
01103I-HH'2
01103I-HH'2
01103I-HH'2
01103I-HH'2
01103I-HH'2
01103I-HH'2
01103I-HH'2
01103I-HH'2
01103I-HH'3
01103I-HH'12
01103I-HH'12
01103I-HH'12
01103I-HH'12
01103I-HH'12
01103I-HH'12
01103I-HH'12
01103I-HH'22
01103I-HH'22
01103I-HH'22
01103I-HH'42
01103I-HH'42
01103I-HH'42
01103I-HH'42
01103I-HH'42
01103I-HH'42
01103I-HH'43
01103I-GG62
01103I-GG62
01103I-GG62
01103I-GG62
01103I-GG62
01103I-GG62
01103I-GG62
01103I-GG62
01103I-GG63
01103I-GG63
01103I-GG63
01103I-GG63
01103I-GG63
01103I-GG63
01103I-GG63
01103I-GG52

你能帮帮我吗?

谢谢

最佳答案

如果我是你,我会选择 sed解决方案。以下 sed 命令确实按照您的帖子中的要求转换您的输入文件(在 - 之后变为小写)

$ sed 's/\(.*\)-\(.*\)/\1-\L\2/g' file
01103I-gg102
01103I-gg102
01103I-gg102
01103I-gg102
01103I-hh'2
01103I-hh'2
01103I-hh'2
01103I-hh'2
01103I-hh'2
01103I-hh'2
01103I-hh'2
01103I-hh'2
01103I-hh'3
01103I-hh'12
01103I-hh'12
01103I-hh'12
01103I-hh'12
01103I-hh'12
01103I-hh'12
01103I-hh'12
01103I-hh'22
01103I-hh'22
01103I-hh'22
01103I-hh'42
01103I-hh'42
01103I-hh'42
01103I-hh'42
01103I-hh'42
01103I-hh'42
01103I-hh'43
01103I-gg62
01103I-gg62
01103I-gg62
01103I-gg62
01103I-gg62
01103I-gg62
01103I-gg62
01103I-gg62
01103I-gg63
01103I-gg63
01103I-gg63
01103I-gg63
01103I-gg63
01103I-gg63
01103I-gg63
01103I-gg52

解释:

  • s/\(.*\)-\(.*\)/\1-\L\2/g您在替换模式下使用 sed 并捕获 - 周围的 2 个组,然后使用反向引用作为替换并使用 - 将第二组(包含 \L 之后的模式)转换为小写选项。

tr 用法:

如果你确定你只有HG在每行的第二部分并且它们没有出现在第一部分那么你可以想象像 tr 'HG...' 'hg...' 这样的东西但这是最大的一点tr命令可以做到。

关于linux - 命令 tr 上下提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48417037/

相关文章:

c - 解释 USB 操纵杆轴

linux - 查找特定用户的最大文件和目录

regex - 检查 R 中字符串是否为大写

gnu - 在 GNU Make 中,如何将路径的驱动器替换为小写?

python - boolean 值到小写字符串

正则表达式将 href 链接更改为小写

linux - 在下标中使用 exec 重定向标准输出

c++ - 添加 include netfilter.h 时出现错误,字段 'in' ,'in6' 的类型不完整

Python 字符串修复,用于在所需的数组元素中插入空格

java - 如何在 Java GUI 中只允许大写字母?