linux命令:将 lyric.txt 中的内容全部替换为大写,并查找单词 KID 所在的行号,随后删除所有包含单词 YOU 的行,其余内容保存到upper.txt 文件中
时间: 2024-03-24 16:40:27 浏览: 61
可以使用以下命令实现:
```
tr '[:lower:]' '[:upper:]' < lyric.txt | grep -n "KID" | awk -F: '{print $1}' | xargs -I {} sed -i '{}s/.*/&\^/' | sed '/YOU/d' > upper.txt
```
解释如下:
1. `tr '[:lower:]' '[:upper:]' < lyric.txt` 将 lyric.txt 中的内容全部转换为大写。
2. `grep -n "KID"` 在转换后的文本中查找单词 KID,并显示其所在行号。
3. `awk -F: '{print $1}'` 提取出行号。
4. `xargs -I {} sed -i '{}s/.*/&\^/'` 在原文件中将所有包含 KID 的行末尾添加一个特殊字符,便于之后删除行。
5. `sed '/YOU/d'` 删除所有包含单词 YOU 的行。
6. `> upper.txt` 将处理后的结果保存到 upper.txt 文件中。
相关问题
linux命令:将 lyric.txt 中的内容全部替换为大写,删除所有包含单词 YOU 的行,内容保存到upper.txt 文件中
可以使用以下命令实现:
```
tr '[:lower:]' '[:upper:]' < lyric.txt | sed '/YOU/d' > upper.txt
```
解释如下:
1. `tr '[:lower:]' '[:upper:]' < lyric.txt` 将 lyric.txt 中的内容全部转换为大写。
2. `sed '/YOU/d'` 删除所有包含单词 YOU 的行。
3. `> upper.txt` 将处理后的结果保存到 upper.txt 文件中。
新建文本文件 lyric.txt,在其中输入以下内容并保存,请使用 linux 命令完成以下操作: Cause there were pages turned, with the bridges burned Everything you lose is a step you take So make the friendship bracelets, take the moment and taste it You have got no reason to be afraid You are on your own, kid Yeah, you can face this You are on your own, kid You always have been 1. 输入命令(echo yoyok; echo yoyok),同时将错误信息重定向到终端,将标准输出追加重定 向至./lyric.txt 文件(不清除原文件内容) 2. 将 lyric.txt 中的内容全部替换为大写,并查找单词 KID 所在的行号,随后删除所有包含单词 YOU 的行,其余内容保存到/tmp/upper.txt 文件中 3. 将lyric.txt中的单词(不区分大小写)按照出现次数降序排列,将排序后的结果保存到count.txt, 输出格式为 word:count
1. 输入命令:
```
echo yoyok; echo yoyok 2> /dev/tty >> ./lyric.txt
```
2. 将 lyric.txt 中的内容全部替换为大写,并查找单词 KID 所在的行号,随后删除所有包含单词 YOU 的行,其余内容保存到 /tmp/upper.txt 文件中,命令如下:
```
tr '[:lower:]' '[:upper:]' < ./lyric.txt | grep -n "KID" | tee /dev/stderr | sed '/YOU/d' > /tmp/upper.txt
```
3. 将lyric.txt中的单词(不区分大小写)按照出现次数降序排列,将排序后的结果保存到count.txt,输出格式为 word:count,命令如下:
```
tr -cs 'a-zA-Z' '\n' < ./lyric.txt | tr '[:upper:]' '[:lower:]' | sort | uniq -c | sort -rn | awk '{print $2":"$1}' > count.txt
```
阅读全文