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

[文本处理] 批处理如何在txt文本里行尾为空格/制表符的行的末尾添加指定字符/字符串

本帖最后由 pcl_test 于 2016-9-12 22:58 编辑

如下,怎么检测指定空白文本后面为空,检测空以后自动添加字符
原文本1.txt中的文本没有特例,所有root后面为空的,都要加成 root ""
  1. 修改前1.txt
  2. 1.1.1.1 root pass
  3. 5.5.5.5 root
  4. 10.10.10.10 root
  5. 111.111.111.111 root q1
  6. 8.8.5.8 root
  7. 5.1.4.444 root
  8. 444.555.000.555 root
  9. 444.2.1.444 root 1
  10. 2.5.5. root
  11. 99.88.77.44 root 123
  12. 修改后为2.txt
  13. 1.1.1.1 root pass
  14. 5.5.5.5 root ""
  15. 10.10.10.10 root
  16. 111.111.111.111 root q1
  17. 8.8.5.8 root ""
  18. 5.1.4.444 root ""
  19. 444.555.000.555 root
  20. 444.2.1.444 root 1
  21. 2.5.5. root ""
  22. 99.88.77.44 root 123
复制代码
1

评分人数

文本后面为空是个什么概念?

TOP

回复 2# idos
修改了一下,你再帮我看看,谢谢

TOP

以root结尾的加""
判断一下,
判定一个人是否为伸手党的标准是取决于他的态度和诚意。

TOP

本帖最后由 B魔方大人 于 2016-9-12 12:49 编辑

以下代码针对你提供的示例(对于多个空格间隔的处理有缺陷):
  1. (for /f "tokens=1,2,3* delims= " %%a in (1.txt) do (
  2. if "%%c"=="" (
  3. echo %%a %%b ""
  4. ) else (
  5. echo %%a %%b %%c
  6. )
  7. ))>>0.txt
复制代码
sorry,问题没看清,代码错误。可以忽略。

TOP

回复 4# wskwfkbdn


    再仔细看一下,有的root结尾不用添加字符串

TOP

没理解要求
啥都不懂,啥都不会!学的还慢!

TOP

10.10.10.10 root
444.555.000.555 root
为什么不需添加

TOP

本帖最后由 codegay 于 2016-9-12 13:32 编辑

凡是类似的,你们都按看成是CSV文件格式来理解就好了。
本质是第三列内容为空,则添加字符。

其实也没必要这样处理,可能只是楼主思路比较傻
或者是读取处理这个帐号密码文件的程序比较傻。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 6# idos


    请在顶楼说明 444.555.000.555 root 为什么是特例,不要让我们猜

TOP

回复 10# CrLf


    没有特列,所有root后面为空的,都要加成 root ""     我已经重新编辑帖子了

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('type "文本.txt"') do (
  3.     set "str=%%a"
  4.     set "str=!str: = !#"
  5.     if "!str:~-2!" equ " #" (echo;%%a"") else echo;%%a
  6. )
  7. pause
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('type "文本.txt"') do (
  3.     set "str=%%a"
  4.     set "str=!str: = !"
  5.     for %%b in ("!str: =\!") do if "%%~nxb" equ "" (echo;%%a"") else echo;%%a
  6. )
  7. pause
复制代码
1

评分人数

TOP

回复 6# idos


    我是说root末尾的需要添加字符串,如果root非末尾的不处理

用第三方  repdos

repdos -d:"aa.txt" -ric:"root$" -t:"root 123"
判定一个人是否为伸手党的标准是取决于他的态度和诚意。

TOP

本帖最后由 DiamondbacK 于 2016-9-12 21:35 编辑

骗个分
  1. sed "s/root *$/& \"\"" inputFile
复制代码
  1. sed -r "s/^(\S+ +root) *$/\1 \"\"" inputFile
复制代码
1

评分人数

TOP

回复 14# DiamondbacK

我也来
  1. mshta http://bathome.net/s/hta "type('文本.txt').replace(/[  ]+(?=(\r?\n|$))/g,'$&\"\"')"&pause
复制代码
  1. powershell -c "gc '文本.txt'|%%{if($_ -match '\s$'){$_+'\"\"'}else{$_}}"&pause
复制代码
第三方
  1. sed -r "s/[[:space:]]+$/&\"\"/" "文本.txt"&pause
复制代码
  1. gawk "{print /[[:space:]]+$/?$0\"\x22\x22\":$0}" "文本.txt"&pause
复制代码

TOP

返回列表