Как проверить положение символов из столбца? [закрыто]

У меня столбец MBI содержит 11 символов. Из этих 11 символов:

  1. 2-й, 5-й, 8-й и 9-й символы всегда будут буквой.
  2. Символы 1, 4, 7, 10 и 11 всегда будут числами.
  3. Третий и шестой символы будут буквой или цифрой

Я написал код отдельно.

Шаг 1:

cut -c 3,6 ACO_SAMPLE.txt > alphanumeric

while read line
do

if echo "$line" | grep -q  '^[1-9][0-9][0-9][0-9][0-9]$'
then
   echo "$line is a valid"
else
   echo "$line is invalid"
fi

done < alphanumeric

rm -f alphanumeric

Шаг 2:

cut -c 2,5,8,9 ACO_SAMPLE.txt > alphabet

while read line
do

if echo "$line" | grep -q  '^[A-Z][A-Z][A-Z][A-Z]$'
then
   echo "$line is a letter"
else
   echo "$line is not a letter"
fi

done < alphabet

rm -f alphabet

Шаг 3:

cut -c 3,6 ACO_SAMPLE.txt > alphanumeric

while read line
do

if echo "$line" | grep -q  '^[A-Z0-9][A-Z0-9]$'
then
   echo "$line is a valid"
else
   echo "$line is invalid"
fi

done < alphanumeric

rm -f alphanumeric

Теперь мне нужно объединить все коды в один. Не знаю как. Может ли кто-нибудь помочь мне с этим?

0
задан 20 September 2018 в 04:59

1 ответ

Можно соответствовать этому единственному регулярному выражению (разделение по поводу нескольких строк для ясности). Вы, возможно, должны соответствовать нечувствительный к регистру в зависимости от Ваших входных данных.

^               # Start of string
[0-9]           # Number
[a-z]           # Letter
[a-z0-9]        # Letter or Number
[0-9]           # Number
[a-z]           # Letter
[a-z0-9]        # Letter or Number
[0-9]           # Number
[a-z]           # Letter
[a-z]           # Letter
[0-9]           # Number
[0-9]           # Number
$               # End of string

Или как одна строка

^[0-9][a-z][a-z0-9][0-9][a-z][a-z0-9][0-9][a-z][a-z][0-9][0-9]$
1
ответ дан 27 October 2019 в 10:31

Другие вопросы по тегам:

Похожие вопросы: