Shell脚本:精准提取poem.txt中5 - 10位单词并分类保存!
要完成这个任务,我们可以编写一个Shell脚本来读取`poem.txt`文件中的内容,并根据单词长度筛选出符合要求的单词,然后将这些单词按长度分别保存到不同的文件中。每个输出文件的第一行会显示该文件中包含的单词数量,每个单词后面还会附带其在原文件中的行号。 以下是实现上述功能的Shell脚本示例: ```bash #!/bin/bash # 定义要处理的单词长度范围 lengths=(5 6 7 8 9 10) # 清除或创建输出文件 for len in "${lengths[@]}"; do echo "0" > word_len-${len}.txt done # 读取poem.txt文件 while IFS= read -r line; do # 记录当前行号 ((line_number++)) # 使用tr将非字母字符转换为空格,然后使用xargs将多空格转换为单空格 clean_line=$(echo "$line" | tr -c '[:alpha:]' ' ' | xargs) # 遍历每行中的每个单词 for word in $clean_line; do # 获取单词长度 word_length=${#word} # 检查单词长度是否在指定范围内 if [[ " ${lengths[@]} " =~ " ${word_length} " ]]; then # 读取已有的单词计数 count=$(head -n 1 word_len-${word_length}.txt) # 将单词及其行号追加到对应的文件中 echo "$word ($line_number)" >> word_len-${word_length}.txt # 更新单词计数 ((count++)) sed -i "1s/.*/$count/" word_len-${word_length}.txt fi done done < poem.txt echo "处理完成!" ``` 脚本说明: 1. 初始化:首先定义了一个数组`lengths`来存储需要处理的单词长度(5, 6, 7, 8, 9, 10)。接着,对于每个长度,创建或清空相应的输出文件,并在每个文件的第一行写入数字0,表示初始单词计数。 2. 读取文件:使用`while IFS= read -r line`循环逐行读取`poem.txt`文件。 3. 处理每一行:使用`tr`命令去除所有非字母字符,并用`xargs`确保单词之间只有单个空格分隔。 4. 处理每个单词:遍历每行中的每个单词,计算其长度,并检查是否在指定的长度范围内。 5. 更新文件:如果单词长度符合条件,则将其及其所在行号追加到对应的文件中,并更新该文件第一行的单词计数。 6. 完成提示:最后输出一条消息,表示处理已完成。 运行脚本: 将上述脚本保存为`process_poem.sh`,然后在终端中运行以下命令来执行脚本: ```bash chmod +x process_poem.sh ./process_poem.sh ``` 确保`poem.txt`文件与脚本位于同一目录下,或者在脚本中提供正确的文件路径。这样,脚本将按照要求处理文件并生成所需的输出。 ######[AI写代码神器 | 733点数解答 | 2024-10-27 18:32:08]
- Python 代码尝试采集唐诗三百首内容时遇“服务器繁忙”困境(GPT | 15点数解答 | 2024-06-24 15:46:11)378
- 测3:以读、二进制方式打开C盘temp文件夹下abc.txt文件的代码选哪个?(GPT | 15点数解答 | 2024-06-06 13:53:37)416
- Linux 终端操作全攻略:用户创建、文件处理、权限设置与日志查找(字节豆包 | 592点数解答 | 2025-06-12 21:19:29)191
- Python实现:轻松爬取古诗网唐诗信息(GPT | 316点数解答 | 2024-06-24 00:59:22)321
- Linux 知识问答:判断文件 test.txt 是否存在的正确命令揭晓!(字节豆包 | 62点数解答 | 2024-11-22 17:14:08)305
- 优化代码:安全高效解锁设备 Bootloader 与刷入 Recovery 镜像(DeepSeek | 345点数解答 | 2025-02-21 22:47:48)185
- 批处理文件:依据参数表.xlsx精准修改文件.txt中p、t、s值(GPT | 811点数解答 | 2024-12-05 12:58:37)415
- 用批处理和Python实现“参数表.xlsx”与“文件.txt”数据匹配及修改(讯飞星火 | 531点数解答 | 2024-12-05 13:20:42)389
- 批处理文件:依据参数表.xlsx精准修改文件.txt特定参数值(阿里通义 | 495点数解答 | 2024-12-05 13:22:26)367
- C语言实现:计算n个元素集合的非空子集划分数量(字节豆包 | 223点数解答 | 2025-04-02 08:32:25)244
- Shell脚本:用户密码验证、目录文件操作全流程实现及注意要点(字节豆包 | 466点数解答 | 2025-06-06 11:02:00)180
- 数字化制图综合平台:助力企业转型,推动烟草物流图纸智能化设计 (字节豆包 | 490点数解答 | 2024-10-30 20:30:29)159