标题: [问题求助] 【已解决】sed用法:如何保留倒数第 2 5 8 11 行 [打印本页]
作者: 思想之翼 时间: 2015-12-14 02:04 标题: 【已解决】sed用法:如何保留倒数第 2 5 8 11 行
本帖最后由 思想之翼 于 2015-12-14 11:48 编辑
- sed -i -n "1p;$p" "D:\数据\*.txt"
复制代码
意为保留第1与最后一行,如果要保留倒数第 2 5 8 11 行,如何写代码?
作者: CrLf 时间: 2015-12-14 02:36
仅作示例,只保留倒数 2、5 行:- sed -i -n "1{N;N;N;};N;${s/\n[^\n]*$//;s/[^\n]*\n//3;s/[^\n]*\n//2;p};D;" a.txt
复制代码
具体怎么搞楼主自己折腾去吧
作者: codegay 时间: 2015-12-14 06:50
- """
- http://www.bathome.net/thread-38591-1-1.html
- 保留文件倒数第N行
- 依山居 6:08 2015/12/14
- 这个问题本质还是可以看是操作列表元素
- """
- with open("1.txt") as f:
- txt=f.readlines()
- ln=len(txt)
- result=[txt[r] for r in range(ln,0,-1) if r==2 or r==5 or r==8 or r==11]
- print(result)
复制代码
作者: codegay 时间: 2015-12-14 07:45
- """
- python字典取出文件倒数第N行.py
- http://www.bathome.net/thread-38591-1-1.html
- 依山居 7:44 2015/12/14
- 本质还是对数组进行操作
- 思路是生成行号,倒序历遍文件,生成字典,行号作为字典键。
- 这样使用时会很方便。
- """
- with open("1.txt") as f:
- txt=f.readlines()
- keys=[r for r in range(1,len(txt)+1)]
- result={k:v for k,v in zip(keys,txt[::-1])}
- print(result[2])#取出倒数第二行
- print(result[3])#取出倒数第三行
复制代码
作者: WHY 时间: 2015-12-14 08:34
- @echo off
- (for /f "delims=" %%i in ('sort /+10000 a.txt') do (
- set /a "n+=1, 1/(n-2), 1/(n-5), 1/(n-8), 1/(n-11)" || echo;%%i
- ))>b.txt 2>nul
- pause
复制代码
作者: codegay 时间: 2015-12-14 19:47
- with open("1.txt") as f:
- txt=f.readlines()
- txt[-2]#取出倒数第二行
- txt[-3]#取出倒数第三行
- txt[0]#第一行
- txt[1]#第二行
- txt[2]#第三行
- [print(txt[l]) for l in [-2,-5,-8,-11]]
复制代码
更简单直接的方法。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |