我一直在清理以下文件名()字符串,如下所示:
#!/bin/sh
QUEUES='FILENAME1.WORLD1.J00.2D.00;FILENAME2.WORLD1.J01.2D.00;FILENAME3.WORLD1.J00.2D.00;FILENAME4.WORLD1.J01.2D.00;FILENAME5.WORLD1.J00.2D.00'
for i in $(echo $MQ_QUEUES | sed "s/;/ /g")
do
a=$(echo "$i" | tr [:upper:] '[:lower:]' | sed 's/\./_/g')
print $a
done
这当前产生上面队列的小写版本,其中完整停止分隔符由下划线替换。但我现在只想抓住标题的第一部分。我该怎么做?
即。因此,$a
代替filename1_world1_j00_2d_00
,而只返回filename1
。
答案 0 :(得分:1)
为什么不使用awk?用:
echo "$QUEUES" | tr ';' '\n' | awk -F'.' '{print tolower($1)}'
你会得到:
filename1
filename2
...