Linux 在Shell脚本中将文件中的字母更改为大写

Linux 在Shell脚本中将文件中的字母更改为大写,linux,shell,ubuntu-20.04,Linux,Shell,Ubuntu 20.04,我正在尝试将文件中特定的给定字母改为大写,但我不知道如何做。该文件已存在,我想执行以下操作 cat merry.txt I wish you a Merry Christmas 将e更改为e,以便输出 cat merry.txt I wish you a MErry Christmas 谢谢大家像这样: sed 's/e/\Ue/' Input_File 要永久编辑,请添加-i开关: sed -i ... 试试这个: sed 's/e/E/' merry.txt 如果文本在一行中包

我正在尝试将文件中特定的给定字母改为大写,但我不知道如何做。该文件已存在,我想执行以下操作

cat merry.txt 
I wish you a Merry Christmas
将e更改为e,以便输出

cat merry.txt
I wish you a MErry Christmas
谢谢大家

像这样:

sed 's/e/\Ue/' Input_File
要永久编辑,请添加
-i
开关:

sed -i ... 
试试这个:

sed 's/e/E/' merry.txt
如果文本在一行中包含多个“e”,则前面的sed将 通过添加全局选项,仅将每行的第一个匹配项更改为“E”
g
到s命令的末尾,您可以确保一行中多次出现的字符串将被更改

尝试使用以下方法:

sed 's/e/E/g' merry.txt
此命令将所有
e
转换为
e

或者可以使用:

sed -i 's/e/E/g' merry.txt

您可以使用
tr
将一个字符“翻译”为另一个字符:

tr'e'e'newfile&&mv newfile文件
您还可以使用
awk
(此处使用动态方法):

find='e'
替换class='E'
awk-v f=“$find”-v r=“$replace”{gsub(f,r)}1'文件>新文件(&mv)新文件
使用GNU
sed
,您可以使用

sed -i 'y/e/E/' file
在所有这些情况下,您可以在文件中的所有位置将
e
替换为
e
,并将更新文件的内容保存在同一文件名下

见a:

#/bin/bash
我祝他们圣诞快乐
找到
替换class='E'

tr“$find”“$replace”这应该可以做到:非常感谢。您知道它是否适用于传递给myshell的第一个命令行参数,例如,我创建了一个名为upper的脚本并执行它。/upper当然,为什么不呢?在此表示感谢的方法是接受答案/投票答案。感谢您的帮助抱歉,我正在尝试使用(./upper e)sed的/$1/\U($1)/g'filename.txt,但它与几分钟前有人遇到的问题不完全一样,请参阅引用问题