Also, Print the records in the same format as input with the same ":" seperator.
cat mydata.log:
name:city:mailid:phone:mywebsite
name1:city1:mailid1:phone1:mywebsite1
.
.
....
One-line:
perl -nlaF":" -e 'if ( length($F[4]) < 3950 ) { $"=":"; print "@F"} ; ' mydata.log
Note:
- @F array is the perl default array which takes the fields seperated by the delimiter specified after the "F" option.
- option "n" is for implicit looping.
- option "l" is for automating line ending.
- option "a" is for automatic split of line as specified by F" " delimiter.
- Since mywebsite is the last field we can write $F[-1] in place of $F[4] in the if loop.
- $" is the seperator by which elements of an array interpolated into a string are joined together.
No comments:
Post a Comment