我正在尝试在此文本文件的每一行末尾添加感叹号。我被告知我需要将所有字符从小写切换到大写,并使用下面的字符串完成。我不确定如何在同一sed
语句中加入感叹号。
cat "trump.txt" | sed 's/./\U&/g'
答案 0 :(得分:0)
考虑以下示例文本:
$ cat ip.txt
this is a sample text
Another line
3 apples
使用sed
命令,使用g
标志一次大写一个字符
$ sed 's/./\U&/g' ip.txt
THIS IS A SAMPLE TEXT
ANOTHER LINE
3 APPLES
在结尾添加一些其他字符
$ sed 's/.*/\U&!!!/' ip.txt
THIS IS A SAMPLE TEXT!!!
ANOTHER LINE!!!
3 APPLES!!!
.*
将匹配整行,&
将包含整行,同时替换g
标志不需要,因为替换只发生一次答案 1 :(得分:0)
这是awk
版本,其中所有文本都将转换为大写,然后将添加三个惊叹号。
awk '{$0=toupper($0) "!!!"}1' input
THIS IS A SAMPLE TEXT!!!
ANOTHER LINE!!!
3 APPLES!!!
说明:
$0
是整行或记录。 toupper
是一个awk
内置函数,用于将输入转换为大写。这里提供$0
作为toupper函数的输入。因此,它会将$0
转换为大写。最终大写的$0
和!!!
将被替换为$ 0作为新值。
命令细分:
awk '{$0=toupper($0)}1' input # to make text uppercase.
awk '{$0= $0 "!!!"}1' input # to add "`!!!`" in the end of text.
或bash
方式:变量名后的^^
符号将使变量大写的内容。
while read line;
do
echo "${line^^}"'!!!' ;
done <input