在 Shell 脚本中将文件中的字母更改为大写
Change a letter in a file to uppercase in Shell script
我正在尝试将文件中的特定给定字母更改为大写,但我不知道该怎么做。该文件已经存在,我想执行以下操作
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' < file > newfile && mv newfile file
也可以使用awk
(这里使用的是动态方式):
find='e'
replace='E'
awk -v f="$find" -v r="$replace" '{gsub(f, r)}1' file > newfile && mv newfile file
使用 GNU sed
,您可以使用
sed -i 'y/e/E/' file
在所有这些情况下,您将文件中各处的 e
替换为 E
,并将更新文件的内容保存在相同的文件名下。
看到一个sample demo online:
#!/bin/bash
s='I wish them a Merry Christmas'
find='e'
replace='E'
tr "$find" "$replace" <<< "$s"
awk -v f="$find" -v r="$replace" '{gsub(f, r)}1' <<< "$s"
sed 'y/e/E/' <<< "$s"
输出:I wish thEm a MErry Christmas
.
我正在尝试将文件中的特定给定字母更改为大写,但我不知道该怎么做。该文件已经存在,我想执行以下操作
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' < file > newfile && mv newfile file
也可以使用awk
(这里使用的是动态方式):
find='e'
replace='E'
awk -v f="$find" -v r="$replace" '{gsub(f, r)}1' file > newfile && mv newfile file
使用 GNU sed
,您可以使用
sed -i 'y/e/E/' file
在所有这些情况下,您将文件中各处的 e
替换为 E
,并将更新文件的内容保存在相同的文件名下。
看到一个sample demo online:
#!/bin/bash
s='I wish them a Merry Christmas'
find='e'
replace='E'
tr "$find" "$replace" <<< "$s"
awk -v f="$find" -v r="$replace" '{gsub(f, r)}1' <<< "$s"
sed 'y/e/E/' <<< "$s"
输出:I wish thEm a MErry Christmas
.