Hello Gurus,
This is my first ever post here. I tried looking for similar material but came up empty handed. Apologies if this is too verbose or if I'm not using the correct formatting.
I have files containing a fixed number of elements per line; separator is a single space. Each line has the number of elements and a line identifier as "prefix". For example, s_04 contains:
Code:
4 01 A B D F
4 05 C E 1 xx
(etc.)
What I want is to cut each field in turn, and keep track of which field was cut. For example s_04.cut would contain
Code:
4 01 (-1) B D F
4 05 (-1) E 1 xx
4 01 (-2) A D F
4 05 (-2) C 1 xx
4 01 (-3) A B F
4 05 (-3) C E xx
4 01 (-4) A B D
4 05 (-4) C E 1
So far, I'm able to cut each field in turn and append it to the desired output file:
Code:
for i in $(seq 1 $nwords)
do
j=$(( i+2 ))
# remove ith field, append to *.cut
cut -d' ' -f"$j" --comp ./out/s_"$nwords" >> ./out/s_"$nwords".cut
The problem is I don't know how to construct a pipe in which somehow $j is echoed/pasted/inserted after the first two fields in the output file. I'm using an awk script to generate the cut fields externally and then using cut and paste to insert it. It works but it's clunky and am looking for something more elegant and "unixy"
I would be grateful for any guidance. In case it matters, I'm working in some recent flavor of Ubuntu.
Hi folks,
I need to find the following value:
First,I need to find the starting section by finding the line:
<process-type id="OC4J_RiGHTv_${SCHEMA_NAME}" module-id="OC4J">
Second,under this line I need to find the following line:
<port id="rmi" range="3765-3776"/>
And third,from this line... (4 Replies)
Hi there !
I have file with single column. I want to cut that column at fixed number of rows each time and paste in another file, in a way that in new file, the each cutting appear as separate columns.
I mean cutting file with one column of 10000 rows, with 100 rows each time, and in new file... (3 Replies)
I am having a stupid moment :-)
I have a tab-delimited file with 2 columns. I want to keep the first column as it is, but I only want the first 8 characters of the 2nd column.
Example of input file data:
---------------------------------
CATERPILLARS CW001651K.dwg... (9 Replies)
First I have to say thank you to this community and this forum. You helped me very much builing several useful scripts.
Now, I can't get a solution the following problem, I'm stuck somehow. Maybe someone has an idea.
In short, I dump a site via lynx and pipe the output in a file. I need to... (7 Replies)
I have a script in a directory and want to search the directory before like follows:
i=0
for file in ../HN_*
do
echo $file
((i+=1))
echo $i
done
Currently I get following output:
../HN_2
1
../HN_3
2 (2 Replies)
Hi,
I have a tab-delimited txt file as below. It is part of the original file.
I want to cut the lines starting with "3" in column1 and paste them before the lines starting with "1" in column 1. So I will get
Anyone knows any simple shell scripts to do that? The original file is... (5 Replies)
I have two text files: One is a single column of numbers and the other is a space delimited text file with multiple columns. I want to paste the single column of numbers into the second column of the latter text file. How do I go about doing that? Thanks! (1 Reply)
I have a file laid out in columns with the first two lines line being:
219 432 4567
219 432 4587
I need to create a single line command to cut the characters in the 5th column and paste them back to the first column in the same file. (Hint:Two good solutions exist, one in which you use a... (9 Replies)
Hi all,
I tried to use the paste command to paste two files with different number of lines.
e.g.
file1
A 1
B 1
C 2
D 2
file2
A 2
B 3
C 4
D 4
E 4 (2 Replies)
Hi All,
I having a data file which consists of 20cr records in it. The 1st column is year field which consist of year in format 200809 and fields are seperated with ^.
How do i trim it to 2008 in file and save it in a quick time as there are many records so that i can use the file for loading... (3 Replies)
Discussion started by: abhi_123
3 Replies
LEARN ABOUT OPENSOLARIS
paste
paste(1) User Commands paste(1)NAME
paste - merge corresponding or subsequent lines of files
SYNOPSIS
paste [-s] [-d list] file...
DESCRIPTION
The paste utility will concatenate the corresponding lines of the given input files, and write the resulting lines to standard output.
The default operation of paste will concatenate the corresponding lines of the input files. The NEWLINE character of every line except the
line from the last input file will be replaced with a TAB character.
If an EOF (end-of-file) condition is detected on one or more input files, but not all input files, paste will behave as though empty lines
were read from the files on which EOF was detected, unless the -s option is specified.
OPTIONS
The following options are supported:
-d list Unless a backslash character () appears in list, each character in list is an element specifying a delimiter character. If a
backslash character appears in list, the backslash character and one or more characters following it are an element specifying
a delimiter character as described below. These elements specify one or more delimiters to use, instead of the default TAB
character, to replace the NEWLINE character of the input lines. The elements in list are used circularly. That is, when the
list is exhausted, the first element from the list is reused.
When the -s option is specified:
o The last newline character in a file will not be modified.
o The delimiter will be reset to the first element of list after each file operand is processed.
When the option is not specified:
o The NEWLINE characters in the file specified by the last file will not be modified.
o The delimiter will be reset to the first element of list each time a line is processed from each file.
If a backslash character appears in list, it and the character following it will be used to represent the following delimiter
characters:
Newline character.
Tab character.
\ Backslash character.
Empty string (not a null character). If is immediately followed by the character x, the character X, or any charac-
ter defined by the LC_CTYPE digit keyword, the results are unspecified.
If any other characters follow the backslash, the results are unspecified.
-s Concatenate all of the lines of each separate input file in command line order. The NEWLINE character of every line except the
last line in each input file will be replaced with the TAB character, unless otherwise specified by the -d option.
OPERANDS
The following operand is supported:
file A path name of an input file. If - is specified for one or more of the files, the standard input will be used. The standard input
will be read one line at a time, circularly, for each instance of -. Implementations support pasting of at least 12 file operands.
USAGE
See largefile(5) for the description of the behavior of paste when encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).
EXAMPLES
Example 1 Listing a directory in one column
example% ls | paste -d" " -
Example 2 Listing a directory in four columns
example% ls | paste - - - -
Example 3 Combining pairs of lines from a file into single lines
example% paste -s -d" t n" file
ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of paste: LANG, LC_ALL, LC_CTYPE, LC_MES-
SAGES, and NLSPATH.
EXIT STATUS
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWesu |
+-----------------------------+-----------------------------+
|CSI |Enabled |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
SEE ALSO cut(1), grep(1), pr(1), attributes(5), environ(5), largefile(5), standards(5)DIAGNOSTICS
"line too long" Output lines are restricted to 511 characters.
"too many files" Except for -s option, no more than 12 input files may be specified.
"no delimiters" The -d option was specified with an empty list.
"cannot open file" The specified file cannot be opened.
SunOS 5.11 20 Dec 1996 paste(1)