escstr.awk 668 B

1234567891011121314151617181920212223242526272829303132333435
  1. BEGIN {
  2. strVariable = ""
  3. if (ARGC != 2)
  4. printf("Usage: <cmd> | awk -f escstr.awk <variable name>\n");
  5. else
  6. {
  7. strVariable = ARGV[1];
  8. ARGC = 1;
  9. }
  10. }
  11. {
  12. strArg = $1
  13. strString = ""
  14. iIndex = index(strArg, "\\")
  15. while (iIndex > 0) {
  16. strTemp = sprintf("%s%s\\\\", strString, substr(strArg, 1, iIndex - 1))
  17. strString = strTemp
  18. strArg = substr(strArg, iIndex + 1)
  19. iIndex = index(strArg, "\\")
  20. }
  21. strTemp = sprintf("%s%s", strString, strArg)
  22. strString = strTemp
  23. }
  24. END {
  25. if (length(strVariable) > 0)
  26. printf("set %s=%s\n", strVariable, strString);
  27. }