[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 【已解决】sed用法:如何保留倒数第 2 5 8 11 行

本帖最后由 思想之翼 于 2015-12-14 11:48 编辑
  1. sed -i -n "1p;$p" "D:\数据\*.txt"
复制代码
意为保留第1与最后一行,如果要保留倒数第 2 5 8 11 行,如何写代码?

  1. with open("1.txt") as f:
  2.     txt=f.readlines()
  3. txt[-2]#取出倒数第二行
  4. txt[-3]#取出倒数第三行
  5. txt[0]#第一行
  6. txt[1]#第二行
  7. txt[2]#第三行
  8. [print(txt[l]) for l in [-2,-5,-8,-11]]
复制代码
更简单直接的方法。
2

评分人数

去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

  1. @echo off
  2. (for /f "delims=" %%i in ('sort /+10000 a.txt') do (
  3.     set /a "n+=1, 1/(n-2), 1/(n-5), 1/(n-8), 1/(n-11)" || echo;%%i
  4. ))>b.txt 2>nul
  5. pause
复制代码
1

评分人数

TOP

  1. """
  2. python字典取出文件倒数第N行.py
  3. http://www.bathome.net/thread-38591-1-1.html
  4. 依山居 7:44 2015/12/14
  5. 本质还是对数组进行操作
  6. 思路是生成行号,倒序历遍文件,生成字典,行号作为字典键。
  7. 这样使用时会很方便。
  8. """
  9. with open("1.txt") as f:
  10.     txt=f.readlines()
  11. keys=[r for r in range(1,len(txt)+1)]
  12. result={k:v for k,v in zip(keys,txt[::-1])}
  13. print(result[2])#取出倒数第二行
  14. print(result[3])#取出倒数第三行
复制代码
2

评分人数

去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

  1. """
  2. http://www.bathome.net/thread-38591-1-1.html
  3. 保留文件倒数第N行
  4. 依山居 6:08 2015/12/14
  5. 这个问题本质还是可以看是操作列表元素
  6. """
  7. with open("1.txt") as f:
  8.     txt=f.readlines()
  9. ln=len(txt)
  10. result=[txt[r] for r in range(ln,0,-1) if r==2 or r==5 or r==8 or r==11]
  11. print(result)
复制代码
2

评分人数

去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

仅作示例,只保留倒数 2、5 行:
  1. sed -i -n "1{N;N;N;};N;${s/\n[^\n]*$//;s/[^\n]*\n//3;s/[^\n]*\n//2;p};D;" a.txt
复制代码
具体怎么搞楼主自己折腾去吧
1

评分人数

TOP

返回列表