写一个shell脚本处理文档。文档中每行有三个元素,第一个元素和第二个元素由:隔开,第二个元素和第三个元素由一串空格分隔开。第一个元素为某一文件的路径,第二个元素为改文件的行数,第三个元素为该行的tag信息。请把第一个元素和第二个元素转成该文件对应行的内容,第三个元素保留。
时间: 2023-04-03 14:00:44 浏览: 73
可以使用以下的shell脚本来处理文档:
```
#!/bin/bash
while read line; do
file=$(echo $line | cut -d: -f1)
line_num=$(echo $line | cut -d: -f2)
tag=$(echo $line | cut -d' ' -f3-)
content=$(sed -n "${line_num}p" $file)
echo "${content}:${tag}"
done < document.txt
```
其中,`document.txt`是包含文档信息的文件,每行有三个元素,按照题目描述的格式。脚本会逐行读取文档信息,提取出文件路径、行数和tag信息,然后使用`sed`命令获取该文件对应行的内容,最后输出转换后的文档信息。
相关问题
写一个shell脚本处理文档。文档中每行有三个元素,三个元素由:隔开。第一个元素为某一文件的路径,第二个元素为改文件的行数,第三个元素为该行的tag信息。请把第一个元素和第二个元素转成该文件对应行的内容,第三个元素保留。
您好,我可以回答这个问题。以下是一个处理文档的shell脚本,可以将文档中每行的第一个元素和第二个元素转换成该文件对应行的内容,第三个元素保留:
```
#!/bin/bash
while read line; do
path=$(echo $line | cut -d ' ' -f 1)
line_num=$(echo $line | cut -d ' ' -f 2)
tag=$(echo $line | cut -d ' ' -f 3)
content=$(sed -n "${line_num}p" $path)
echo "${content} ${tag}"
done < document.txt
```
其中,`document.txt`是包含文档信息的文件,每行有三个元素,由空格隔开。脚本会逐行读取该文件,并将每行的第一个元素和第二个元素转换成该文件对应行的内容,第三个元素保留,最后输出到标准输出。
阅读全文