trying to script a command line

Craig White craig at tobyhouse.com
Wed Mar 5 13:22:02 MST 2008


OK - truly simplifying my issue to a point where someone should be able
to explain this to me...

# my starting file
$ cat test-db.txt
A 1
B 2
C 3

# this is what I want
$ cat test-db.txt | cat test-db.txt | sed 's/ /\\ /g' | sed ':a;N;$!
ba;s/\n/ /g'
A\ 1 B\ 2 C\ 3

# but if I aggregate the command inside backticks, I lose the 
# escaped spaces part of the sed command...

$ TEST=`cat test-db.txt \
  | cat test-db.txt \
  | sed 's/ /\\ /g' \
  | sed ':a;N;$!ba;s/\n/ /g'`

$ echo $TEST
A 1 B 2 C 3

So the carriage returns are removed by the spaces aren't escaped.

How can I do this so I can aggregate a file with fields on each line so
that the carriage returns are removed and the spaces are escaped?

Craig



More information about the PLUG-discuss mailing list