I am writing simple bash script (actually learning how to do it ) and i want this function to use just echo and sed and return exactly the same output. I found solutions with sed, they worked in console but did not work inside of script. (script is called with sudo, maybe it's important)

This is my function:

function strip
     echo "$1" | grep -oP '[a-zA-Z0-9\+\-\=\ ]+' | head -n 1;

This is how it is suppsed to work

Input: "-Wall"
Output: "-Wall"

Input: "-O3%## -Wall"
Output: "-O3"

Input: "%#$#$"
Output: ""

Can anyone show how would it look like using sed?

  • 1
    Show input and expected output plz. – 123 Jan 11 '16 at 15:18
  • Your input and output make no sense... – 123 Jan 11 '16 at 15:43
  • Thank you for replying that's true i made mistake, now it's corrected. – npower Jan 11 '16 at 15:45
echo ___abc___ | sed 's/^.*\(abc\).*$/\1/'
  • 1
    Why even capture the groups you're not using? – Benjamin W. Jan 18 '16 at 16:34
  • @BenjaminW. You are right. That is not necessary. – Hauke Laging Jan 19 '16 at 1:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.