ファイルの各行に最初に表示される番号をキャプチャする方法はありますか?
test
たとえば、次のような内容のファイルがあります。
AA111 1 DFJKD BKJ3 () A G C TT
BB112 DKFJ 32 JDKFJ JE () DF
113 BDNF 33 3()
希望の出力は
111
112
113
入力の各行は英数字(たとえば、文字または数字、特殊文字なし)で始まります。
ベストアンサー1
以下はいくつかの方法です。
sed 's/^[^0-9]*\([0-9]\+\).*/\1/' test
cat test | tr -c '0-9\n' ' ' | while read first rest; do echo $first; done
gawk -F '[^0-9]+' '{print $2}' test # requires non-digits to start line
perl -nE'say/(\d+)/?$1:""' test # code golf
大きな打撃:
while read line; do [[ $line =~ [[:digit:]]+ ]] && echo ${BASH_REMATCH[0]} || echo; done