何度も質問失礼します。
sample.txt
/a_b_c_d/CNT_a/USERNAME_TARO_MAN_CNT_A/0610/GAB/AA/OUT/
/a_b_c_d/CNT_a/USERNAME_JAMES_MAN_CNT_CH/0000/GAB/AA/OUT/
/a_b_c_d/CNT_aw/USERNAME_TARO2_MAN_CNT_A/14/GAB/AA/OUT/
/a_b_c_d/CNT_a/USERNAME_JUN_LADY_CNT_CO/061788/GAB/AA/OUT/
#!bin/bash
FILE="sample.txt"
cat "$FILE" | while read line; do
temp=$(echo "$line" | grep -o -P "username_.*")
name=(expr "$temp" | ".USERNAME_(.)")
num=(expr "$temp" | "CNT./(.)/")
echo $name $from
done
とした時どうしても最短一致ができません。
name=TARO num=0610
name=JAMES num=0000
name=TARO2 num=14
name=JUN num=061788
のように出力をしたいです。
正規表現.?も試しましたがやはり最長一致が起きてしまいます。
USERNAME_取り出したい_
CNT_./取り出したい/
のように一致文字列を取り出したいのですがいい案はないでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。