How to combing output of cut commands with a delimiter?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to combing output of cut commands with a delimiter?
# 1  
Old 05-14-2014
HP How to combing output of cut commands with a delimiter?

While looping through a file, I am cutting different length of characters (based on their length) like columns and want to produce the output in a separate file with different columns being separated by a comma.
How to achieve this with an online command. I don't want to create multiple variables or files.
Code:
Input file :
123456789
CARISGOOD
CATISBAD
GOAISBAD
GODISGOOD

Output should look like this :
123,45,6789
CAR,IS,GOOD
CAT,IS,BAD
GOA,IS,BAD
GOD,IS,GOOD

Here is the real file
Code:
 
  111MN EDXBB35B            11SAP22             00ES ABCD00001000010000000000010000GH20140502

And the output should be in below format :
Code:
         Col=4-6
             Col=7-8
             Col=9-26
             Col=27-28
             Col=29-46
             Col=47-48
             Col=49-51
             Col=52-53
             Col=54-55
             Col=56-64
             Col=65-69
             Col=70-76
             Col=77-81

Moderator's Comments:
Mod Comment CODE tags supply their own color and font; please do not override the CODE tag font and color.

Last edited by Don Cragun; 05-14-2014 at 07:24 PM.. Reason: Remove unneeded COLOR and FONT tags.
# 2  
Old 05-14-2014
Code:
sed 's#\(...\)\(..\)#\1,\2,#' file

This User Gave Thanks to Yoda For This Post:
# 3  
Old 05-14-2014
Thanks !

Thanks, can you please go through the new example and let me know how to accomplish this
# 4  
Old 05-14-2014
if you have gawk, you can use its FIELDWIDTHS capability - I might be off for some fields - I'll leave it up to you to adjust as needed:
Code:
gawk -v FIELDWIDTHS='6 2 17 2 17 2 2 2 2 2 8 4 6 4' '$1=$1' OFS=, myFile

Processing your sample line, results in:
Code:
  111M N  EDXBB35B              11SAP22                00 ES  A BCD00001 0000 100000 0000

NOTE: if you don't have gawk/FIELDWIDTHS, there's a way to implement it in other awk-s.

Last edited by vgersh99; 05-15-2014 at 09:24 AM..
# 5  
Old 05-14-2014
First, it is not nice to go back and edit your original problem statement after your problem has been solved. Second, your updated problem statement is extremely vague.

What output are you hoping to get from your sample real file? Do you want commas inserted between the fields identified by Col=start_col-end_col? Do you want thirteen lines of output for every input line?
# 6  
Old 05-15-2014
Thanks Don for your comments.

Don, I will keep this in mind going forward.
Your first assumption is correct, I would like to insert commas between the fields identified by the length from the sample line given.
# 7  
Old 05-15-2014
This still leaves a lot of unanswered questions:
  1. Is your program supposed to read a list of Col=start,stop values from a file, or are these fixed values?
  2. Is there supposed to be a comma added before column 4 (or before the 1st identified field)?
  3. Is there supposed to be a comma added after column 81 (or after the last identified field)?
  4. If the Col=values entries are supposed to be read from a file:
    1. are they always in increasing order?
    2. do they always specify adjacent fields?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Python Combing Two Commands

I have been digging deeper into Python and want to make my code as efficient as possible. The less line of code the better so I have been experimenting and wanted to ask the Python gurus if this is possible. So: ... ... In : kbfileurl = re.search('<p>For more information about this... (6 Replies)
Discussion started by: metallica1973
6 Replies

2. Shell Programming and Scripting

Cut cmd with delimiter as |#|

Hi All- We have a file data as below with delimiter as |#| 10|#|20|#|ABC 13|#|23|#|PBC If I want to cut the 2nd field out of this, below command is not working as multiple pipe is causing an issue , it seems cut -f2 -d"|#|" <file_name> can you please help to provide the correct command... (7 Replies)
Discussion started by: sureshg_sampat
7 Replies

3. Shell Programming and Scripting

cut delimiter and save

i have list of names in a text file and I wanted to delete the commas en every line. for example: inside the text is a list of names in it with commas after each line. I wanted to delete these commas. which command must I execute for this? unix, dale, shawn, aaron, (4 Replies)
Discussion started by: garfish
4 Replies

4. Shell Programming and Scripting

How to cut by delimiter, and delimiter can be anything except numbers?

Hi all, I have a number of strings like below: //mnt/autocor/43°13'(33")W/ and i'm trying to get the numbers in this string, for example 431333 please help thanks ahead (14 Replies)
Discussion started by: sunnydanniel
14 Replies

5. Shell Programming and Scripting

how to cut all string after the last delimiter?

hi all, suppose a string: abc/def/ghi/jkl/mn.txt and i want to get the file name without the path. however, different files have different paths, therefore the number of delimiter is uncertain. thanks so much! (3 Replies)
Discussion started by: sunnydanniel
3 Replies

6. UNIX for Dummies Questions & Answers

set output delimiter as tab in cut command

I can not make it work, it prints \t rather than introduce tabs. cut -d "," -f 4,8 Samples.csv --output-delimiter="\t" | sort > out Since I am running this command within a shell script, I tried manually inserting tab in this command, still does not work. I am using bash shell Suggestions... (8 Replies)
Discussion started by: analyst
8 Replies

7. Shell Programming and Scripting

Cut columns with delimiter

HI, I have a file like below "103865","103835","Zming","","Zhu","103965","Sunnyvale","US", "116228","116227","Morlla","","Kowalski","113228","Paese "(Treviso)""IT" I want to validate the 7th column which is below. "Sunnyvale" "Paese In the above 7th column Paese is not ended with... (9 Replies)
Discussion started by: Krrishv
9 Replies

8. Shell Programming and Scripting

cut -d with more than 1 delimiter?

I need to cut or otherwise get the 4th and 5th position output of for i in `date +%H` ; do vnstat --dumpdb | grep "h;$i" ; done example output is: h;13;1310318701;443;93 I only need ";443;93" from any given run of "for i in `date +%H` ; do vnstat --dumpdb | grep "h;$i" ; done" Thanks... (3 Replies)
Discussion started by: Habitual
3 Replies

9. UNIX for Advanced & Expert Users

use a word as a delimiter with cut

Is there a way to use a word as a delimiter with cut? Or is there a way to use sed or awk with a word as a delimiter? I don't care which program I use for a delimiter I just want to use a word as a delimiter. (2 Replies)
Discussion started by: cokedude
2 Replies

10. Shell Programming and Scripting

\r as delimiter in cut

I need to use \r as a delimiter in the -d option of the cut comand . Any help ? Thanks in advance . SD (5 Replies)
Discussion started by: shweta_d
5 Replies
Login or Register to Ask a Question