Craig White wrote: > 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? > > $ TEST=`cat test-db.txt | sed 's/ /\\\ /g' | tr '\n' '\\ '` $ echo $TEST A\ 1 B\ 2 C\ 3 One thing I don't get is, why use cat twice? Also, imo tr is better than sed at replacing '\n' since what you have is gnu specific. -Mike --------------------------------------------------- PLUG-discuss mailing list - PLUG-discuss@lists.plug.phoenix.az.us To subscribe, unsubscribe, or to change your mail settings: http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss