Как удалить символы из строки после знака вопроса и включая его? - PullRequest
0 голосов
/ 16 июня 2020

Я уверен, что 200% что-то вроде этого было задано, но навыки Google ускользают от меня, и мне нужен пример solid, поскольку я получаю всевозможные ошибки, возможно, при экранировании?. Я думал, что могу сделать что-то вроде

${var1|?*|} 

, так как я хочу взять

asldkjljewrewr?adflksjfdljksdf

и сократить его до

asldkjljewrewr

с помощью сценария bash.

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Похоже, вы пытались использовать ${parameter%%pattern}:

var1=asldkjljewrewr?adflksjfdljksdf
echo=${var1%%\?*}

Обратите внимание на необходимость экранирования ? - в противном случае он будет считаться «любым символом» в глобусе.

Вы можете найти все поддерживаемые формы подстановки параметров в разделе Parameter Expansion Advanced Bash -Scripting Guide.

1 голос
/ 17 июня 2020

Не знаю, именно то, что вы искали, но это можно сделать с помощью команды cut:

#!/bin/bash

var1="asldkjljewrewr?adflksjfdljksdf"
var2="$(cut -d "?" -f1 <<< "$var1")"
echo "$var2"
# asldkjljewrewr
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...