Sponsored Content
Top Forums Shell Programming and Scripting extract multiple cloumns from multiple files; skip rows and include filenames; awk Post 302345229 by manishabh on Tuesday 18th of August 2009 05:47:51 PM
Old 08-18-2009
extract multiple cloumns from multiple files; skip rows and include filenames; awk

Hello,

I am trying to write a bash shell script that does the following:

1.Finds all *.txt files within my directory of interest
2. reads each of the files (25 files) one by one (tab-delimited format and have the same data format)
3. skips the first 10 rows of the file
4. extracts and prints out columns 2,14 , 15 into one output file
5. adds a new column to the final output file with the name of the txt file from where the data was extracted.

I have written a shell script which is not working properly and doesnot have the code for the part to skip 10 rows.

Below I have pasted a sample input file, output file and my code


Input file format:

TYPEtexttexttexttextintegerfloatfloattexttexttextintegerintegerintegerintegerFEPARAMSProtocol_NamePr otocol_dateScan_DateScan_ScannerNameScan_NumChannelsScan_MicronsPerPixelXScan_MicronsPerPixelYScan_O riginalGUIDGrid_NameGrid_DateGrid_NumSubGridRowsGrid_NumSubGridColsGrid_NumRowsGrid_NumColsDATAmiRNA-v1_95_May07 (Read Only)####################Agilent Technologies Scanner G2505B US45102930155a18d8bd4-628a-4054-b2ba-45c7a66de583016436_D_20070426############1119282* TYPEfloatfloatfloatintegerintegerfloatintegerfloatfloatfloatintegerfloatfloatintegerSTATSgDarkOffset AveragegDarkOffsetMediangDarkOffsetStdDevgDarkOffsetNumPtsgSaturationValuegAvgSig2BkgNegCtrlgNumSatF eatgLocalBGInlierNetAvegLocalBGInlierAvegLocalBGInlierSDevgLocalBGInlierNumgGlobalBGInlierAvegGlobal BGInlierSDevgGlobalBGInlierNumDATA26.709275.44777100012031791.11899038.717365.42632.954291202965.426 32.9542912029* TYPEintegerintegerintegertextintegertextintegerintegertexttexttexttextfloatfloatFEATURESFeatureNumRo wColchr_coordSubTypeMaskSubTypeNameProbeUIDControlTypeProbeNameGeneNameSystematicNameDescriptionPosi tionXPositionYDATA111 0 01miRNABrightCorner30miRNABrightCorner30miRNABrightCorner30 6774.29228.723DATA212 66Structural21DarkCornerDarkCornerDarkCorner 6800.2229.421DATA313chr14:100595916-1005958970 30A_25_P00010115hsa-miR-154*hsa-miR-154*NA6826.51228.385DATA414chr8:135881995-1358820100 50A_25_P00010390hsa-miR-30bhsa-miR-30bNA6850.48228.853DATA515chr14:100558179-1005581610 70A_25_P00010956hsa-miR-379hsa-miR-379NA6875.37228.408DATA616chr19:058916206-0589161860 80A_25_P00011941hsa-miR-517bhsa-miR-517bNA6900.98229.321

Output format: tab delimited file. The last column shows the filename from which the data was extracted

16774.29228.723ABC.txt26800.2229.421ABC.txt36826.51228.385DEF.txt46850.48228.853DEF.txt56875.37228.4 08XYZ.txt66900.98229.321XYZ.txt


My incomplete code:
Code:
find -name '*.txt' |
while read filename
do
awk -F"\t" -v name="$file"'
BEGIN {OFS="|"}
{print $2,$14,$15,name}
' $filename > output.txt
done

thanks in advance for your help.

Last edited by Yogesh Sawant; 06-01-2010 at 10:48 AM.. Reason: added code tags
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

need help with post:extract multiple columns from multiple files

hello, I will would be grateful if anyone can help me reply to my post extract multiple cloumns from multiple files; skip rows and include filenames; awk Please see this thread. Thanks manishabh (0 Replies)
Discussion started by: manishabh
0 Replies

2. UNIX for Dummies Questions & Answers

best method of replacing multiple strings in multiple files - sed or awk? most simple preferred :)

Hi guys, say I have a few files in a directory (58 text files or somthing) each one contains mulitple strings that I wish to replace with other strings so in these 58 files I'm looking for say the following strings: JAM (replace with BUTTER) BREAD (replace with CRACKER) SCOOP (replace... (19 Replies)
Discussion started by: rich@ardz
19 Replies

3. UNIX for Dummies Questions & Answers

AWK, extract data from multiple files

Hi, I'm using AWK to try to extract data from multiple files (*.txt). The script should look for a flag that occurs at a specific position in each file and it should return the data to the right of that flag. I should end up with one line for each file, each containing 3 columns:... (8 Replies)
Discussion started by: Liverpaul09
8 Replies

4. UNIX for Dummies Questions & Answers

Using AWK: Extract data from multiple files and output to multiple new files

Hi, I'd like to process multiple files. For example: file1.txt file2.txt file3.txt Each file contains several lines of data. I want to extract a piece of data and output it to a new file. file1.txt ----> newfile1.txt file2.txt ----> newfile2.txt file3.txt ----> newfile3.txt Here is... (3 Replies)
Discussion started by: Liverpaul09
3 Replies

5. UNIX for Dummies Questions & Answers

awk, extract last line of multiple files

Hi, I have a directory full of *.txt files. I would like to print the last line of every file to screen. I know you can use FNR for printing the first line of each file, but how do I access the last line of each file? This code doesn't work, it only prints the last line of the last file:BEGIN... (5 Replies)
Discussion started by: Liverpaul09
5 Replies

6. Shell Programming and Scripting

perform 3 awk commands to multiple files in multiple directories

Hi, I have a directory /home/datasets/ which contains a bunch (720) of subdirectories called hour_1/ hour_2/ etc..etc.. in each of these there is a single text file called (hour_1.txt in hour_1/ , hour_2.txt for hour_2/ etc..etc..) and i would like to do some text processing in them. Each of... (20 Replies)
Discussion started by: amarn
20 Replies

7. Programming

where to put include files, multiple src directories

I have an issue with some fortran include files. I have the following src directory structure, trunk/src/client_main trunk/src/client_models trunk/src/server The make file is at trunk/makefile. In /src/client_main there are some included dependencies, COMMON.BLK PARAM.DAT... (0 Replies)
Discussion started by: LMHmedchem
0 Replies

8. Shell Programming and Scripting

connecting to table to extract multiple rows into file from unix script

I need to extract the data from oracle table and written the below code. But it is not working.There is some problem with the query and output is shown is No rows selected" . If I run the same query from sql developer there is my required output. And if I run the shell script with simple sql... (7 Replies)
Discussion started by: giridhar276
7 Replies

9. Shell Programming and Scripting

Create Multiple UNIX Files for Multiple SQL Rows output

Dear All, I am trying to write a Unix Script which fires a sql query. The output of the sql query gives multiple rows. Each row should be saved in a separate Unix File. The number of rows of sql output can be variable. I am able save all the rows in one file but in separate files. Any... (14 Replies)
Discussion started by: Rahul_Bhasin
14 Replies

10. UNIX for Dummies Questions & Answers

Is there any way to cat multiple files and show filenames?

Hi, Is there any way to do a cat * where it shows the name of each file in the process? Similar to what more does below? $ more ?.sql :::::::::::::: 1.sql :::::::::::::: set linesize 200 select db_unique_name, cast( from_tz( cast(... (5 Replies)
Discussion started by: newbie_01
5 Replies
XmProcessTraversal(3X)													    XmProcessTraversal(3X)

NAME
XmProcessTraversal - A function that determines which component receives keyboard events when a widget has the focus SYNOPSIS
#include <Xm/Xm.h> Boolean XmProcessTraversal (widget, direction) Widget widget; XmTraversalDirection direction; DESCRIPTION
XmProcessTraversal determines which component of a hierarchy receives keyboard events when the hierarchy that contains the given widget has keyboard focus. Using XmProcessTraversal to traverse to MenuBars, Pulldown MenuPanes, or Popup MenuPanes is not supported. Specifies the widget ID of the widget whose hierarchy is to be traversed. The hierarchy is only traversed up to the top of the shell. If that shell does not currently have the focus, any changes to the element with focus within that shell will not occur until the next time the shell receives focus. Specifies the direction of traversal The direction parameter can have the following values, which cause the routine to take the corresponding actions: XmTRAVERSE_CURRENT--Finds the hierarchy and the tab group that contain widget. If this tab group is not the active tab group, makes it the active tab group. If wid- get is an item in the active tab group, makes it the active item. If widget is the active tab group, makes the first traversable item in the tab group the active item. XmTRAVERSE_DOWN--Finds the hierarchy that contains widget. Finds the active item in the active tab group and makes the item below it the active item. If there is no item below, wraps. XmTRAVERSE_HOME--Finds the hierarchy that contains widget. Finds the active item in the active tab group and makes the first traversable item in the tab group the active item. XmTRA- VERSE_LEFT--Finds the hierarchy that contains widget. Finds the active item in the active tab group and makes the item to the left the active item. If there is no item to the left, wraps. XmTRAVERSE_NEXT--Finds the hierarchy that contains widget. Finds the active item in the active tab group and makes the next item in child order the active item. XmTRAVERSE_NEXT_TAB_GROUP--Finds the hierarchy that contains widget. Finds the active tab group (if any) and makes the next tab group the active tab group in the hierarchy. XmTRAVERSE_PREV--Finds the hierarchy that contains widget. Finds the active item in the active tab group and makes the previous item in child order the active item. XmTRAVERSE_PREV_TAB_GROUP--Finds the hierarchy that contains widget. Finds the active tab group (if any) and makes the previous tab group the active tab group in the hierarchy. XmTRAVERSE_RIGHT--Finds the hierarchy that contains widget. Finds the active item in the active tab group and makes the item to the right the active item. If there is no item to the right, wraps. XmTRAVERSE_UP--Finds the hierarchy that contains widget. Finds the active item in the active tab group and makes the item above it the active item. If there is no item above, wraps. CAUTIONS XmProcessTraversal will not allow traversal to a widget in a different shell. XmProcessTraversal will only allow traversal to widgets that are currently mapped. You cannot call XmProcessTraversal from inside a focusCallback routine (or you will get a segmentation fault). RETURN VALUE
Returns True if the setting succeeded. Returns False if the keyboard focus policy is not XmEXPLICIT, if there are no traversable items, or if the call to the routine has invalid parameters. SEE ALSO
XmGetVisibility(3X), XmIsTraversable(3X) XmProcessTraversal(3X)
All times are GMT -4. The time now is 08:52 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy