Posted on 2009-08-28 13:45
Prayer 閱讀(1318)
評論(0) 編輯 收藏 引用 所屬分類:
Shell
在文件table.list中有如下內容,
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 |
請問一下,有沒有一種好的辦法截取我需要的字符串,比如第一條記錄,記錄的長度未知,但我只要字符串“s_job_chain",這是一個表名,是我所需要的。
我有一種方法,代碼如下,但我需要一種更好的。簡單易懂的。謝謝
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基礎十二篇之find+xargs
awk -F'[/.]' '{print $(NF-1)}' table.list
解釋,如果用/和.來進行分隔,那個倒數第二個字段就是你需要的表名
如果是文件名
試試
ls ./tempdata/ | awk -F'.' '/\.txt$/{print $1}'