怎么编写shell脚本实现相同的循环操作?

sh/bash/dash/ksh/zsh等Shell脚本
回复
Sapindus
帖子: 2
注册时间: 2021-12-29 18:39

怎么编写shell脚本实现相同的循环操作?

#1

帖子 Sapindus » 2021-12-29 18:42

小白试了半天没想明白怎么通过编写shell脚本的循环实现下面命令的效果:
cat SureChEMBL_20141001_1.txt | awk '{print $2,$1}' > SureChEMBL_20141001_1.smi
cat SureChEMBL_20141001_2.txt | awk '{print $2,$1}' > SureChEMBL_20141001_2.smi
cat SureChEMBL_20150101_3.txt | awk '{print $2,$1}' > SureChEMBL_20150101_3.smi
cat SureChEMBL_20150401_4.txt | awk '{print $2,$1}' > SureChEMBL_20150401_4.smi
cat SureChEMBL_20150701_5.txt | awk '{print $2,$1}' > SureChEMBL_20150701_5.smi
cat SureChEMBL_20151001_6.txt | awk '{print $2,$1}' > SureChEMBL_20151001_6.smi
cat SureChEMBL_20160101_7.txt | awk '{print $2,$1}' > SureChEMBL_20160101_7.smi
cat SureChEMBL_20160401_8.txt | awk '{print $2,$1}' > SureChEMBL_20160401_8.smi
cat SureChEMBL_20160701_9.txt | awk '{print $2,$1}' > SureChEMBL_20160701_9.smi
cat SureChEMBL_20161001_10.txt | awk '{print $2,$1}' > SureChEMBL_20161001_10.smi
cat SureChEMBL_20170101_11.txt | awk '{print $2,$1}' > SureChEMBL_20170101_11.smi
cat SureChEMBL_20170401_12.txt | awk '{print $2,$1}' > SureChEMBL_20170401_12.smi
cat SureChEMBL_20170701_13.txt | awk '{print $2,$1}' > SureChEMBL_20170701_13.smi
cat SureChEMBL_20171001_14.txt | awk '{print $2,$1}' > SureChEMBL_20171001_14.smi
cat SureChEMBL_20180101_15.txt | awk '{print $2,$1}' > SureChEMBL_20180101_15.smi
cat SureChEMBL_20180401_16.txt | awk '{print $2,$1}' > SureChEMBL_20180401_16.smi
cat SureChEMBL_20180701_17.txt | awk '{print $2,$1}' > SureChEMBL_20180701_17.smi
cat SureChEMBL_20181001_18.txt | awk '{print $2,$1}' > SureChEMBL_20181001_18.smi
cat SureChEMBL_20190101_19.txt | awk '{print $2,$1}' > SureChEMBL_20190101_19.smi
cat SureChEMBL_20190401_20.txt | awk '{print $2,$1}' > SureChEMBL_20190401_20.smi
cat SureChEMBL_20190701_21.txt | awk '{print $2,$1}' > SureChEMBL_20190701_21.smi
头像
lilydjwg
论坛版主
帖子: 4250
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 怎么编写shell脚本实现相同的循环操作?

#2

帖子 lilydjwg » 2021-12-29 19:53

不要试。去找教程。用 for 循环就可以了。
比如: http://www.yeolar.com/media/doc/bgb-cn/html/index.html
Sapindus
帖子: 2
注册时间: 2021-12-29 18:39

Re: 怎么编写shell脚本实现相同的循环操作?

#3

帖子 Sapindus » 2021-12-29 21:06

lilydjwg 写了: 2021-12-29 19:53 不要试。去找教程。用 for 循环就可以了。
比如: http://www.yeolar.com/media/doc/bgb-cn/html/index.html
多谢! :Haha
mainmaster
帖子: 2
注册时间: 2022-01-21 8:36
系统: win10

Re: 怎么编写shell脚本实现相同的循环操作?

#4

帖子 mainmaster » 2022-01-21 10:55

#!/bin/bash

postfix=txt
suffix=smi

for i in $(ls *.txt)
do
cat $i | awk '{print $2,$1}' > ${i%$postfix}$suffix
done
回复