亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 2498 | 回復(fù): 9
打印 上一主題 下一主題

關(guān)于 awk 發(fā)現(xiàn)錯(cuò)誤繼續(xù)執(zhí)行的問(wèn)題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-10-24 02:11 |只看該作者 |倒序?yàn)g覽
腳本根據(jù) $1 對(duì) $2進(jìn)行分檢

awk ' { print $2 >> $1 ".txt" }'  file1 ...

但是$1有時(shí)會(huì)含有非法字符,這時(shí)會(huì)提示“致命錯(cuò)誤,無(wú)法重定向”,然后程序就退出了,請(qǐng)問(wèn)大家如何處理這種情況?

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運(yùn)維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
2 [報(bào)告]
發(fā)表于 2008-10-24 09:05 |只看該作者

回復(fù) #1 nully 的帖子

先判斷$1并作相應(yīng)處理。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2008-10-24 23:17 |只看該作者
如何判斷$1是個(gè)合法的文件名?

論壇徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辭舊歲徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
4 [報(bào)告]
發(fā)表于 2008-10-24 23:25 |只看該作者
原帖由 nully 于 2008-10-24 23:17 發(fā)表
如何判斷$1是個(gè)合法的文件名?

供參考: 1 ascii可見(jiàn)字符 linux下好像除了/都可以
         2 中文等特殊符號(hào),很多不可以

所以判斷所有的合法文件名有點(diǎn)難,只能根據(jù)實(shí)際情況判斷;或者根據(jù)$1定制的文件名

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2008-10-25 02:06 |只看該作者
這樣也許可以判斷出是否非法,你試試:
  1. awk '{ if(system("touch  "$1".txt  >/dev/null 2>&1")==0) print $2 >>$1".txt"; else print "invalid filename" }' file
復(fù)制代碼

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2008-10-25 02:32 |只看該作者
bash-3.2$ echo aa\"a bbb|awk '
$1!=last{last=last1=$1;gsub(/[^a-zA-Z_\-0-9]/,"",last1)}
{ print $2 > last1 ".txt" }
'

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2008-10-25 15:13 |只看該作者
先對(duì)樓上幾位表示感謝

對(duì)于seelnd的touch方法我也有用過(guò),但由于是在cygwin上跑,大量的時(shí)間耗在system(touch)上了,不合算
zhangshebao的把非法字符替換掉也不太可行,因?yàn)?1有中文情況

...

出錯(cuò)情況也不多,手動(dòng)改一下吧...汗...

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報(bào)曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
8 [報(bào)告]
發(fā)表于 2008-10-26 09:39 |只看該作者
LANG=C awk ' { print $2 >> $1 ".txt" }'  file1

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2008-10-26 18:01 |只看該作者

回復(fù) #1 nully 的帖子

非法字符??

"$2" >> "$1" 這樣試試

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2008-11-29 20:16 |只看該作者
原帖由 nully 于 2008-10-25 15:13 發(fā)表
先對(duì)樓上幾位表示感謝

對(duì)于seelnd的touch方法我也有用過(guò),但由于是在cygwin上跑,大量的時(shí)間耗在system(touch)上了,不合算
zhangshebao的把非法字符替換掉也不太可行,因?yàn)?1有中文情況

...

出錯(cuò)情況 ...


這個(gè)可以,在cygwin上測(cè)試過(guò)了:
echo "a b
aaa/bb ccc
工人 bbb
aaaa#aa/ 333"|awk '
fname[$1]==""{
   if(0==system("echo "$2">>"$1".txt"))fname[$1]=$1".txt";
   else {
      print "ERROR:echo "$2">>"$1".txt">>"出錯(cuò)日記.log";
      last1=$0;gsub(/[^a-zA-Z_\-0-9\200-\377]/,"#",last1)
      if(0==system("echo "$2">>"last1"改名.txt")){
         fname[$1]=last1"改名.txt";
         print $1".txt 改名為:"last1"改名.txt">>"出錯(cuò)日記.log";
      } else{
         print "ERROR:echo "$2">>"last1"改名.txt">>"出錯(cuò)日記.log";
      }
   }
}
fname[$1]!=""{ print $2 >> fname[$1] }
'
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP