2012-03-08 2 views
0

проблемы, которую я встретил, как это: дана строка dimensioning-inspection_depth-0rules_20120306-084158 Я хотел бы получить первую часть строки: dimensioning-inspection_depth-0rules, так сказать, избавиться от метки времени части. В perl, это как часть работы, чтобы сделать работу, используя регулярное выражение. Но так как я новичок в bash, я бы хотел знать, что это лучший способ сделать это в Bash.строки обработки в Баше

+0

Как вы скажете первую часть со второй части? –

ответ

2

Если вы не хотите, чтобы трубы строку в СЭД, вы можете использовать Bash переменную коверкая:

$ string=dimensioning-inspection_depth-0rules_20120306-084158 
$ echo ${string%_*} 
dimensioning-inspection_depth-0rules 

Больше информации о переменной коверкая here.

2

Вы можете сделать это:

str=dimensioning-inspection_depth-0rules_20120306-084158 
echo ${str%_*} 

Это удалит что-либо после того, как и в том числе в строке последнего _, так что если ваша строка всегда имеет вид something_date-time, вы всегда будете оставаться с something части.

Больше информации здесь:

2
a="dimensioning-inspection_depth-0rules_20120306-084158" 
echo $a | head -c -16 

Так как метка времени всегда будет равна ширине (16 символов, которые вы пытаетесь обрезать конец в данном случае), head -c -16 должен работать на вас

Смежные вопросы