Posted on 2009-08-28 13:45
Prayer 閱讀(1319)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
Shell
在文件table.list中有如下內(nèi)容,
cat table.list
./tempdata/s_job_chain.txt ./tempdata/s_entity_info.txt ./tempdata/s_db_info.txt ./tempdata/s_job_cost.txt ./tempdata/s_datamng_log.txt ./tempdata/s_audit_rule.txt ./tempdata/s_cnode_stat.txt ./tempdata/s_instance_stat.txt ./tempdata/h_instance_info.txt ./tempdata/s_ds_jobparam.txt ./tempdata/s_job_attr.txt ./tempdata/h_job_info.txt ./tempdata/s_refer_log.txt ./tempdata/s_receive_info.txt ./tempdata/s_event_obj.txt ./tempdata/s_cnode_info.txt ./tempdata/s_project_stat.txt ./tempdata/s_seq_job.txt |
請(qǐng)問(wèn)一下,有沒(méi)有一種好的辦法截取我需要的字符串,比如第一條記錄,記錄的長(zhǎng)度未知,但我只要字符串“s_job_chain",這是一個(gè)表名,是我所需要的。
我有一種方法,代碼如下,但我需要一種更好的。簡(jiǎn)單易懂的。謝謝
for one in `ls ./tempdata -name *.txt` do onetab=`echo ${one##*/} | awk -F "." '{print $1}'` echo $onetab done
|
cat ur.txt | xargs -i basename {}
如果不明白就去置頂看shell基礎(chǔ)十二篇之find+xargs
awk -F'[/.]' '{print $(NF-1)}' table.list
解釋,如果用/和.來(lái)進(jìn)行分隔,那個(gè)倒數(shù)第二個(gè)字段就是你需要的表名
如果是文件名
試試
ls ./tempdata/ | awk -F'.' '/\.txt$/{print $1}'