Уклањање знакова из низа у Басху

Removing Characters From String Bash



Понекад ћете можда морати да уклоните знакове из низа. Без обзира на разлог, Линук вам нуди разне уграђене, згодне алате који вам омогућавају да уклоните знакове из низа у Басху. Овај чланак вам показује како помоћу тих алата уклонити знакове из низа.

У чланку је описано како да урадите следеће:







  • Уклоните знак из низа помоћу сед
  • Уклоните знак из низа помоћу авк -а
  • Уклоните знак из низа помоћу сечења
  • Уклоните знак из низа помоћу тр

Команде приказане у овом чланку су изведене у Убунту 20.04 Фоцал Фосса. Исте команде се могу извршити и на другим Линук дистрибуцијама које имају горенаведене алате на располагању. За извршавање наредби користићемо подразумевану апликацију Терминал. Апликацији Терминал можете приступити помоћу тастерске пречице Цтрл+Алт+Т.



Уклоните знакове из низа помоћу сед

Сед је моћан и згодан услужни програм који се користи за уређивање токова текста. То је неинтерактивни уређивач текста који вам омогућава да извршавате основне манипулације текстом на улазним токовима. Такође можете користити сед за уклањање нежељених знакова из низова.



У сврху демонстрације, користићемо низ узорака, а затим га пренети у команду сед.





Уклоните одређени знак из низа

Користећи сед, можете уклонити одређени знак из низа. На пример, за уклањање х из низа Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | сед 'с/х //'

Ово ће уклонити само прву појаву „х“ у низу.
Уклоните одређени знак из низа1
Да бисте уклонили све појаве „х“ из низа, користите следећу команду:



$Избацио 'Здраво, како си?' | сед 'с/х // г'

Где г стоји за глобално. Уклониће све појаве „х“ у низу.
Уклоните одређени знак из Стринг2

Уклони први знак из низа

Да бисте уклонили први знак из низа Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | сед 'с /^.//' филе

Где (.) Одговара тачно једном знаку и (^) одговара било ком знаку на почетку низа.
Уклони први знак из низа

Уклони последњи знак из низа

Да бисте уклонили последњи знак из низа Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | сед 'с /.$//'

Где ( . ) одговара тачно једном знаку и ($) одговара било ком знаку на крају низа.
Уклони последњи знак из низа

Уклоните први и последњи знак из низа

Да бисте уклонили први и последњи знак из низа Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | сед 'с /^.//; с /.$//'

Уклоните први и последњи знак из низа

Уклоните знакове из низа помоћу авк

Авк је моћан скриптни језик који се користи за усклађивање узорака, заједно са обрадом текста. Авк вам омогућава да филтрирате и трансформишете текст на различите начине. Такође можете користити авк за уклањање знакова из низова.

У сврху демонстрације, користићемо узорак низа, а затим га пренети у наредбу авк.

Уклони први знак из низа

Да бисте уклонили први знак из низа Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | авк '{принт субстр ($ 0, 2)}'

Где је ($ 0) цео циљни низ и (2) почетна позиција знака. Горња команда уклања први знак, „х“, број знака „1“ и враћа циљни низ који почиње другим знаком, „е“.
Уклони први знак из низа

Уклоните прва два знака из низа

Такође можете уклонити одређени број знакова са почетка низа. На пример, за уклањање прва два знака из низа Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | авк '{принт субстр ($ 0, 3)}'

Горња команда ће уклонити прва два знака, „он“ или бројеве знакова „1 и 2“, и вратити циљни низ који почиње бројем знака „3“ или „л“.
Уклоните прва два знака из низа

Уклони последњи знак из низа

Да бисте уклонили последњи знак из Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | авк '{принт субстр ($ 0, 1, ленгтх ($ 0) -1)}'

Где дужина ($ 0) -1 значи одузети ' 1 ’Од укупне дужине знакова.

Горња команда ће одштампати низ који почиње бројем знака ' 1 ' све до дужина ($ 0) -1 да скинемо последњи знак.

Постоје ' 19 ’Знакова (укључујући размаке) у горњем низу. Команда ће радити штампањем свих знакова, почевши од знака „ 1 'И до карактера' 18 , 'Док уклањате последњи знак' 19 . ’

рмв последњи цхар фрм стринг

Уклоните последња два знака из низа

Да бисте уклонили последња два знака из Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | авк '{принт субстр ($ 0, 1, ленгтх ($ 0) -2)}'

Где дужина ($ 0) -2 значи одузети ' 2 ’Од укупне дужине знакова.

Горња команда ће одштампати низ, који почиње бројем знака ' 1 'И до броја знака' дужина ($ 0) -2 , ’За уклањање последња два знака у низу.
Уклоните последња два знака из низа

Уклоните и први и последњи знак из низа

Да бисте уклонили и први и последњи знак из низа Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | авк '{принт субстр ($ 0, 2, ленгтх ($ 0) - 2)}')

Где дужина ($ 0) -2 значи одузети ' 2 ’Од укупне дужине знакова.

Горња команда ће одштампати низ, који почиње бројем знака ' 2 „До броја знака“ дужина ($ 0) -2 , ’Да бисте уклонили први и последњи знак.

Уклоните и први и последњи знак из низа

Уклоните знак из низа помоћу реза

Цут је алатка командне линије која се обично користи за издвајање дела текста из низа или датотеке и штампање резултата на стандардни излаз. Ову команду можете користити и за уклањање знакова из низа.

У сврху демонстрације, користићемо узорак низа, а затим га пренети у команду цут.

Уклони први знак из низа

Да бисте уклонили први знак из низа, Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | исећи 2-

Ова команда ће одштампати низ, почевши од другог знака, док ће уклонити први знак.
рмв исецање -ц

Уклоните прва четири знака из низа

Да бисте уклонили прва четири знака из низа Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | исећи 5-

Ова команда ће одштампати низ, почевши од петог знака, док ће уклонити прва четири знака.
Уклоните прва четири знака из низа

Штампани низ између 2. и 5. знака

За штампање низа Здраво, како си? између другог и петог знака , наредба би била:

$Избацио 'Здраво, како си?' | исећи 2-5

Ова команда ће одштампати низ, почевши од другог знака па све до петог знака, док ће уклонити преостале почетне и завршне знакове.
рмв 2. и 5. ц2

Уклони последњи знак из низа

Да бисте уклонили последњи знак из низа Здраво, како си? користити исећи командује са рев , као што следи:

$Избацио 'Здраво, како си?' | рев | исећи -ц2- | рев

Ова команда функционише тако што прво обрне низ, затим исече први знак и на крају га поново преокрене како би вам дала жељени излаз.
02Уклоните последњи знак из низа

Уклоните последња четири знака из низа

Да бисте уклонили последња четири знака из реда Здраво, како си? наредба би била:

$Избацио 'Здраво, како си?' | рев | исећи -ц5- | рев

Ова команда функционише тако што прво преокрене низ, затим исече прва четири знака, а затим га поново преокрене како би вам дала жељени излаз.
рмв последња четири знака

Уклоните први и последњи знак из низа

Да бисте уклонили први и последњи знак из низа Здраво, како си? користити исећи командује са рев , као што следи:

$Избацио 'Здраво Свете!' | исећи -ц2- | рев | исећи -ц2- |рев

Ова команда функционише тако што пресече први знак, затим преокрене низ и исече његов први знак, а затим га поново преокрене како би вам дао жељени излаз.
рмв први и последњи

Уклоните знак из низа помоћу тр

Наредба тр (скраћеница од транслате) користи се за превођење, стискање и брисање знакова из низа. Такође можете користити тр за уклањање знакова из низа.

У сврху демонстрације, користићемо узорак низа, а затим га пренети у команду тр.

Уклоните све појаве лика

Помоћу команде тр можете уклонити сва појављивања малих или великих знакова из низа. На пример, да бисте уклонили сва појављивања малих слова „х“ из низа, наредба би била:

$Избацио 'Здраво, како си?' | НС х

уклоните све појаве 01

Слично, да бисте уклонили сва појављивања великог слова 'Х' из низа, наредба би била:

$Избацио 'Здраво, како си?' | НС Х.

Тумачене секвенце можете користити и за уклањање малих или великих слова:

$Избацио 'Здраво, како си?'| НС [: горњи:]

појављивања нижа

$Избацио 'Здраво, како си?'| НС [: ниже:]

појављивања горњи

Уклоните све појаве малих и великих знакова

Такође можете уклонити сва појављивања малих и великих слова из низа. На пример, следећа команда ће уклонити сва појављивања знака „х“, и мала и велика слова.

$Избацио 'Здраво, како си?' | НС 'ХХ'

појављивања горња и доња

Уклоните све појаве знакова у одређеном опсегу

Да бисте уклонили све појаве знакова из низа у одређеном опсегу „д-х“, наредба би била:

$Избацио 'Здраво, како си?' | НС 'д-х'

Ова команда ће уклонити све знакове у опсегу „д-х“ (д, е, ф, г, х) у низу.
појављивања специфичан распон

Закључак

У Линуксу ће увек постојати више начина за постизање једноставног посла. Исто важи и за уклањање знакова из низа. Овај чланак вам је показао четири различита начина да то учините, заједно са неколико примера за уклањање нежељених знакова из низа. Одлука о томе који алат ћете користити зависи од ваших преференција и, што је још важније, од онога што желите постићи.