Если вы согласны с awk
, вы также можете попробовать выполнить следующие действия.
var="https://research.checkpoint.com/ramnits-network-proxy-servers/"
echo $var | awk '{sub(/\/$/,"")} 1'
Объяснение: Добавление пояснения к приведенному выше коду сейчас, только для поясненияцели.
var="https://research.checkpoint.com/ramnits-network-proxy-servers/" ##Creating a variable in shell which has value as OP mentioned.
echo $var | awk '{sub(/\/$/,"")} 1' ##Sending echo output to awk command here. In awk command using sub to substitute / which comes in end of line with NULL.
##awk works on method of condition and action, so mentioning 1 is making condition TRUE and not mentioning any action so by default
##Printing of line/variable value will happen.
РЕДАКТИРОВАТЬ: Видя вашу попытку попытаться добавить еще 1 решение, чтобы избежать многих комбинаций команд здесь (это будет читать только последнюю строку Input_fileи выйдет из-под контроля, так как я ввел в нее exit
).
tac Input_file | awk 'FNR==1 && /xpanded_url\":\"/{sub(/\/$/,"");print;exit}'
EDIT2: Добавление одной awk
команды здесь, в некоторыхawk
в его блоке END
мы не можем получить последнюю строку в некоторых, которые мы можем, поэтому добавляем оба вида решений, которые работают для людей.
awk 'END{if($0 ~ /xpanded_url\":\"/){sub(/\/$/,"");print}}' Input_file
OR
awk '{val=$0}END{if(val ~ /xpanded_url\":\"/){sub(/\/$/,"",val);print val}}' Input_file