1

Imagine your script outputs some real strange output like:

fdjsagnfafeowkagfdsngodagfoeagnfiosnthoaogjerapogrjeagnfdosngtnsrhig ofskhnIAGNRIEAGPREAOGJRIAEGRNIEOASGNFAIGRNESUIGRIOAEGRNIAENGRUEAOREANFDOIGNRUESIGORNAEIGNREIOAGRIUESGRJOEAGRNEOSIGRNEPAGRJAEIO

Crap I know. Probably it would look better this way:

fdjsagnfafeowkagfdsngodagfoeagnfiosnthoaogjera
pogrjeagnfdosngtnsrhig ofskhnIAGNRIEAGPREAOGJR
IAEGRNIEOASGNFAIGRNESUIGRIOAEGRNIAENGRUEAOREAN
FDOIGNRUESIGORNAEIGNREIOAGRIUESGRJOEAGRNEOSIGR
NEPAGRJAEIO

I am trying to do this with base64 encoded string data in bash. How could I do it?

Tomáš Zato
  • 50,171
  • 52
  • 268
  • 778

1 Answers1

3

For your sample input, fold will produce the output that you request. Suppose that we have this file:

$ cat longline
fdjsagnfafeowkagfdsngodagfoeagnfiosnthoaogjerapogrjeagnfdosngtnsrhig ofskhnIAGNRIEAGPREAOGJRIAEGRNIEOASGNFAIGRNESUIGRIOAEGRNIAENGRUEAOREANFDOIGNRUESIGORNAEIGNREIOAGRIUESGRJOEAGRNEOSIGRNEPAGRJAEIO

To make lines with width 46-characters:

$ fold -w 46 longline
fdjsagnfafeowkagfdsngodagfoeagnfiosnthoaogjera
pogrjeagnfdosngtnsrhig ofskhnIAGNRIEAGPREAOGJR
IAEGRNIEOASGNFAIGRNESUIGRIOAEGRNIAENGRUEAOREAN
FDOIGNRUESIGORNAEIGNREIOAGRIUESGRJOEAGRNEOSIGR
NEPAGRJAEIO

If you want to use it in a pipeline, fold also accepts stdin:

$ fold -w 46 <longline
fdjsagnfafeowkagfdsngodagfoeagnfiosnthoaogjera
pogrjeagnfdosngtnsrhig ofskhnIAGNRIEAGPREAOGJR
IAEGRNIEOASGNFAIGRNESUIGRIOAEGRNIAENGRUEAOREAN
FDOIGNRUESIGORNAEIGNREIOAGRIUESGRJOEAGRNEOSIGR
NEPAGRJAEIO

On Linux, fold is part of GNU coreutils and should be installed by default. It is also available under Mac OSX.

John1024
  • 109,961
  • 14
  • 137
  • 171