Skip to content
Advertisement

Stripping single and double quotes in a string using bash / standard Linux commands only

I’m looking for something that will translate a string as follows, using only bash / standard Linux commands:

  1. Single-quotes surrounding a string should be removed
  2. Double-quotes surrounding a string should be removed
  3. Unquoted strings should remain the same
  4. Strings with unmatched surrounding quotes should remain the same
  5. Single-quotes that don’t surround the string should remain
  6. Double-quotes that don’t surround the string should remain

For example:

  • ‘Food’ should become Food
  • “Food” should become Food
  • Food should remain the same
  • ‘Food” should remain the same
  • “Food’ should remain the same
  • ‘Fo’od’ should become Fo’od
  • “Fo’od” should become Fo’od
  • Fo’od should remain the same
  • ‘Fo”od’ should become Fo”od
  • “Fo”od” should become Fo”od
  • Fo”od should remain the same

Thank you!

Advertisement

Answer

This should do it:

JavaScript

Where in.txt is:

JavaScript

And expected.txt is:

JavaScript

You can check they match with:

JavaScript
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement