shell获取重复行第二行行号
时间: 2024-10-08 22:09:21 浏览: 26
shell获取命令行参数示例分享
在Shell脚本中,如果你想要获取文本文件中重复行的第二行行号,可以使用`sort`, `uniq -d` 和 `awk` 工具结合。以下是一个示例步骤:
1. 首先,使用`sort`命令对文件按行排序:
```
sort input.txt > sorted.txt
```
2. 然后,使用`uniq -d`找出重复的行:
```
uniq -d sorted.txt > duplicates.txt
```
3. 接着,`awk`可以帮助我们从原始文件中提取出重复行的行号。假设输入文件名为`input.txt`,我们可以这样做:
```
awk 'FNR==NR{a[$0];next} ($0 in a)' input.txt duplicates.txt | cut -f1 -d: |
xargs -I{} grep -n {} input.txt | cut -d: -f1
```
这里`awk`用于查找`duplicates.txt`中存在的行在`input.txt`中的位置,然后`cut`命令去掉冒号和空格,最后`xargs`和`grep`组合在一起找到对应行的行号。
注意:这个过程假设你的行号从1开始计数,如果行号是从0开始,你需要稍微调整一下切分和提取行号的方式。
阅读全文