Views How to replace a CRLF char from a variable length file in the middle of a string in UNIX?
My sample file is variable length, with out any field delimiters. It has min of 18 chars length and the 'CRLF' is potentially between 12-14 chars. How do I replace this with a space? I still want to keep end of record, but just want to remove these new lines chars in the middle of the data.
On top of what wisecracker already said, a few additional questions:
Didn't you say you want a space introduced between the partial lines? Your sample output doesn't have such.
And, your "completed" lines (2 and 4) don't have the required minimum length of 18 chars.
Is it always one single line to be added to an incomplete one, or can there be more?
Try putting the following code into a command file for sed:
How to use it:
Once a line starting with "1234" is read, the next line is appended into sed, separated by a new_line. Then that new_line is replaced with a space.
HTH
P.S. It was noted you wanted a space when you wanted to take out the CRLF but this was missing in your example output. If you don't want a space, take out the space after the second slash in the s command.
@wbport, thank you!The 1234 record may not have a new line chars too.. The updated sample input file:
output file: ------ Post updated at 10:01 PM ------
Thank you for all inputs. Sorry for the confusion about the problem example. Here I am reposting the problem.
My sample file is variable length, with out any field delimiters. It has min of 18 chars length and the 'CRLF' is potentially (not always) between 11-15 chars.
How do I replace this type of new line char with a space? I still want to keep end of record, but just want to replace these new lines chars in the middle of the data with a space.
In below example record # 2, #4 (for a record type of begining '1234') has a 'CRLF' char in b/w 11-15 char of record which I want to replace with space.
my OS: Unix AIX 7.2
updated Input:
Expected output:
What I tried:
But it's just adding space @ col 11, not removing CRLF b/w cols 11-15.
I see if your 1234 line is followed by a 1123 line you don't want to combine lines. For the following I assume your data will never have a tilde character "~". If it does substitute some other "never happen" character or stream of characters in the sed command file.
Here I change the newline to a tilde. If the characters after that are 1123, change the tilde back to a newline. If not, delete the tilde and the line following 1234 will remain appended.
Hi All,
We have variable block file generated on Mainframe. We have to process the file on unix. So we FTPed the file on binary (as it has packed decimal fields). but i don't know how to read the file on unix.
As you know variable block file will have a data like
record length followed by... (2 Replies)
I am trying to get text from a webpage, in terminal form. So far I am:
1. getting the html for the page printed using curl (curl -s webpage.com), which is then
2. piped to awk, printing line number 29 (awk NR==29), then
3. this is where I am sort of lost. I know where in the printed line I... (7 Replies)
Can someone tell me how I can do this?
e.g:
a=$(echo -e wert trewt ertert ertert ertert erttert
erterte
rterter
tertertert
ert)
How do i replace the STRING with $a?
I try this:
sed -i 's/STRING/'"$a"'/g' filename.ext
but this don' t work (2 Replies)
Hi All
I want to take a Hexadecimal number as input and i want to find lenth of the input and pass it to char s ( char s ). I have a program to convert hexadecial to binary but it is taking limited input but i want to return binary number based on input. How? (1 Reply)
Hi,
i call my shell like:
my_shell "my project name"
my script:
#!/bin/bash -vx
projectname=$1
sed s/'PROJECT_NAME ='/'PROJECT_NAME = '$projectname/ <test_config_doxy >temp
cp temp test_config_doxy
the following error occurres:
sed s/'PROJECT_NAME ... (2 Replies)
Hi all,
I am trying to find the best way of making a change to 1 char in a string, the string can be between 1 and 14 characters.
I am reading a line in from a file which contains
012341231231:2:102939283:NNN: Require :NBN:
012838238232:3:372932:NNN: Require :NNB:
I need to change 1 N or a... (8 Replies)
Hello,
I really would appreciate some help with a bash script for some string manipulation on an SQL dump:
I'd like to be able to rename "sites/WHATEVER/files" to "sites/SOMETHINGELSE/files" within the sql dump.
This is quite easy with sed:
sed -e... (1 Reply)
I have a customer who logged some cc and bank account numbers in their apache logs. I got the cc numbers x'd out with
sed -e 's/args=\{16\}/args=XXXXXXXXXXXXXXXX/g' -e 's/cardnum=\{16\}/cardnum=XXXXXXXXXXXXXXXX/g'but that wasn't too difficult due to the value being 16 digits.
The bank account... (7 Replies)
Hi, all.
I need to convert a file tab delimited/variable length file in AIX to a fixed lenght file delimited by spaces. This is the input file:
10200002<tab>US$ COM<tab>16/12/2008<tab>2,3775<tab>2,3783
19300978<tab>EURO<tab>16/12/2008<tab>3,28523<tab>3,28657
And this is the expected... (2 Replies)
Hi,
I know, particular value in the variable should always be of lenth 7 , but the value that is present in thevariable might be of any no.of characters less than or equal to 7... if the no.of characters in the variable is less than 7, I want to add, zeroes at the starting of the field.. How can... (3 Replies)