|  | 
 
| HAT 版主
 
         
 
 
 
 积分 9023
 发帖 5017
 注册 2007-5-31
 状态 离线
 | 
| 『楼 主』:
 [跟风娱乐一下]批处理倒序输出字符串
 
使用 LLM 解释/回答一下 
 
 
test.txt的内容: ~!@#$%^&*()_+{}|:"<>? `1234567890-=\;',./ 
要求输出结果:
 /.,';\]
 总感觉自己的代码太长了,看看高人们有什么先进的方法。
 
 Last edited by HAT on 2008-8-30 at 11:22 AM ]
 
 
 
 
 |  
                  |  
  |  | 
|  2008-6-20 17:46 |  | 
|  | 
 
| pusofalse 银牌会员
 
      
 
 
 积分 1604
 发帖 646
 注册 2008-4-13
 状态 离线
 | 
| 『第 2 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
特殊字符。。。特殊字符!~ 
 
 
 
 
 |  
                  |  心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
 |  | 
|  2008-6-20 18:02 |  | 
|  | 
 
| hackerscans 初级用户
 
   
 
 
 
 积分 73
 发帖 51
 注册 2007-8-31
 状态 离线
 |  | 
|  2008-6-20 18:06 |  | 
|  | 
 
| terse 银牌会员
 
      
 
 
 
 积分 2404
 发帖 946
 注册 2005-9-8
 状态 离线
 |  | 
|  2008-6-20 18:11 |  | 
|  | 
 
| bat-zw 金牌会员
 
       永远的学习者
 
 
 积分 3105
 发帖 1276
 注册 2008-3-8
 状态 离线
 |  | 
|  2008-6-20 18:19 |  | 
|  | 
 
| pusofalse 银牌会员
 
      
 
 
 积分 1604
 发帖 646
 注册 2008-4-13
 状态 离线
 | 
| 『第 6 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
希望zw19750516前辈把namejm版主的那篇帖子发上来,让我等新手学习学习。。。搜索了,没找到。。。。 
 
 
 
 
 |  
                  |  心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
 |  | 
|  2008-6-20 18:38 |  | 
|  | 
 
| bat-zw 金牌会员
 
       永远的学习者
 
 
 积分 3105
 发帖 1276
 注册 2008-3-8
 状态 离线
 |  | 
|  2008-6-20 18:41 |  | 
|  | 
 
| pusofalse 银牌会员
 
      
 
 
 积分 1604
 发帖 646
 注册 2008-4-13
 状态 离线
 | 
| 『第 8 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
谢谢。 
 
 
 
 
 |  
                  |  心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
 |  | 
|  2008-6-20 18:46 |  | 
|  | 
 
| lxmxn 版主
 
         
 
 
 积分 11386
 发帖 4938
 注册 2006-7-23
 状态 离线
 | 
| 『第 9 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
sed "/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//" test.txt
 
Comes from <<sed1line>>. 
 
 
 
 |  | 
|  2008-6-20 19:24 |  | 
|  | 
 
| HAT 版主
 
         
 
 
 
 积分 9023
 发帖 5017
 注册 2007-5-31
 状态 离线
 | 
| 『第 10 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by zw19750516 at 2008-6-20 06:19 PM:其实只要看过namejm的最大原样输出文本内容,并理解了其中的精髓,那么这道题就不难了。不知hat兄以为如何?
 
其实我就是这样做的,呵呵。只是想看看还有没有其他方法。
 @echo offfor /f "delims=" %%i in ('findstr /n .* test.txt') do (
 set "str=%%i"
 setlocal enabledelayedexpansion
 set str=!str:*:=!
 set strbak=!str!
 call :reverse
 endlocal
 )
 goto :eof
 
 :reverse
 ping -n 1 127.1>nul
 if defined strbak (
 set /p= !strbak:~-1!<nul
 set strbak=!strbak:~0,-1!
 goto :reverse
 )
 echo.
 goto :eof
 
 
 
 
 
 |  
                  |  
  |  | 
|  2008-6-20 20:22 |  | 
|  | 
 
| HAT 版主
 
         
 
 
 
 积分 9023
 发帖 5017
 注册 2007-5-31
 状态 离线
 | 
| 『第 11 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by lxmxn at 2008-6-20 07:24 PM:
 sed "/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//" test.txt
 Comes from <<sed1line>>.
 
我来贴一遍waker斑竹的解释吧,呵呵。
 #反转一行中每个字符的顺序(类似"rev") sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
 ###假设一行文字是 123
 ###那么执行后模式空间中的内容应该按下边的顺序变化
 执行/\n/!G;得
 123\n
 然后s/\(.\)\(.*\n\)/&\2\1/;
 得
 123\n23\n1
 执行//D
 23\n1
 因为是D命令所以从头循环
 模式空间有\n
 所以/\n/!G;中G不执行
 再来s...
 23\n3\n21
 再D
 3\n21
 循环,G不执行
 再来s...
 3\n\n321
 再D
 \n321
 循环
 G和s和D都不执行
 执行最后的s/.//
 321
 
 
 
 
 
 |  
                  |  
  |  | 
|  2008-6-21 03:46 |  | 
|  | 
 
| recallshan 初级用户
 
   
 
 
 
 积分 31
 发帖 14
 注册 2007-7-31
 状态 离线
 | 
| 『第 12 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
@echo offfor /f "delims=" %%i in ('findstr /n .* test.txt') do (
 set "str=%%i"
 setlocal enabledelayedexpansion
 set str=!str:*:=!
 set var=!str!
 call :lp
 endlocal
 )
 pause
 goto :eof
 :lp
 if defined str set/a n+=1&set str=!str:~1!&goto lp
 set/a n-=1
 for /l %%i in (%n% -1 0) do set/p= !var:~%%i,1!<nul
 
 不知道这段代码可否指定反向后的字符  输出到一个文本里
 
 
 
 
 |  | 
|  2008-9-18 19:29 |  | 
|  | 
 
| metoo 初级用户
 
   
 
 
 
 积分 195
 发帖 93
 注册 2006-10-28
 状态 离线
 | 
| 『第 13 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
来段awk的 {
 nb=""
 re=""
 nb=split ($0,ww,"")
 for (i=nb;i>0;i--)
 {re=re ww
 }
 print re
 }
 
 
 
 
 |  | 
|  2008-9-18 20:21 |  | 
|  | 
 
| recallshan 初级用户
 
   
 
 
 
 积分 31
 发帖 14
 注册 2007-7-31
 状态 离线
 |  | 
|  2008-9-19 01:30 |  | 
|  | 
 
| HAT 版主
 
         
 
 
 
 积分 9023
 发帖 5017
 注册 2007-5-31
 状态 离线
 | 
| 『第 15 楼』:
 Re 14楼
 
使用 LLM 解释/回答一下 
 
 
就是把字符串存放到一个数组里面,然后通过数组下标的控制实现倒序输出。具体的语法可以看看gawk的帮助。 
 
 
 
 
 |  
                  |  
  |  | 
|  2008-9-19 09:49 |  |