LinuxDev 板


LINE

※ 引述《psylove5566 (甜小蜜)》之铭言: : Hi, : 请教一下各位大大 : 我有一个batch file如下: : FOR /F %%i in (list1.txt) DO (parser21 < OriginalData_new/%%i > ParserOut_ver/%%i ) : 我想转换为shell档,我试着转换,以下是经过网路上查後,我转换後的档案,但因为还是无法执行,想请教一下错误何在? : for i in [list1.txt]; do "parser21 < OriginalData_new/i > ParserOut_ver/i " 我猜你是要把 list1.txt 里的内容,一次取一行出来对吧? 在 bash 里, 用 while + read 两个指令搭配,以达到切一行一行出来, 对於读档来说,我觉得比 for 好用。 例如: (假设 parser21 OriginalData_new/ ParserOut_ver/ 都在当前目录) -------------------------------------- #!/bin/bash while read -r -d $'\n' line; do ./parser21 < "./OriginalData_new/${line}" > "./ParserOut_ver/${line}" done < <(cat list1.txt) -------------------------------------- 应该会是你要的? --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.42.52.73
1F:推 psylove5566:恩,我是要读list中的每一个档案,谢谢您的回覆 07/04 10:17
2F:→ goldie:-d设定分隔字元, 本次采unix换行字元: $'\n' 07/04 21:59
3F:→ goldie:格式一定要钱号加一对单引号,不能少$,也不能换成双引号 07/04 22:00
4F:→ goldie:这是 bash 特殊语法,用於展开跳脱字元 07/04 22:01
5F:推 psylove5566:不好意思,我执行後出现以下的错误 07/05 16:15
6F:→ psylove5566:syntax error near unexpected token `<' 07/05 16:16
7F:→ psylove5566:请问,done表示while结束,为啥输入list在done之後? 07/05 16:18
8F:→ psylove5566:请问两个<分开打的意思是什麽,谢谢您的回覆 07/05 16:19
9F:→ goldie:()是subshell而<()多把subshell的stdout导出伪装成档案 07/05 22:20
10F:→ goldie:再用第一个<设定while-loop的stdin来自上述的(伪)档案 07/05 22:21
11F:→ goldie:< <() 等效於 < input_text_file 07/05 22:23
12F:→ goldie:所以两个< <不能连在一起,因为是不同功能用途XDDD 07/05 22:25
13F:→ goldie:当然你可以把这个while-loop重写成 pipe 型式… 例如: 07/05 22:25
14F:→ goldie:cat list1.txt | while read -r -d $'\n' line; do (…略) 07/05 22:26
15F:→ goldie:虽然改成这样好像比较直观,但我觉得有时反而难用,因为… 07/05 22:27
16F:→ goldie:原本是cat跑在subshell里,新的反而是pipe後面的while-loop 07/05 22:31
17F:→ goldie:跑在subshell里,这样我常在while-loop设定全域变数,会在 07/05 22:32
18F:→ goldie:script其他处取用不到(parent shell)会造成有些你想做的事 07/05 22:33
19F:→ goldie:情你达不到 07/05 22:33
20F:→ goldie:关於<()跟>()语法,有个名词叫 "process substitution" 07/05 22:36
21F:→ goldie:可参考这篇: http://goo.gl/5jBpn 07/05 22:37
22F:→ goldie:以及 Google Shell Style Guide: 07/06 14:54
23F:→ goldie:http://goo.gl/0WN2r 的 Features & Bugs: Pipes to While 07/06 14:54
24F:→ goldie:若两个<少隔空白而连在一起成<<则变成here document种语法 07/06 22:27
25F:推 psylove5566:谢谢您详细的介绍,非常的感激 07/07 10:04







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP