Sponsored Content
Top Forums Shell Programming and Scripting awk - Must "touch" a $n-variable to get OFS used? Post 302673979 by 244an on Wednesday 18th of July 2012 05:25:22 PM
Old 07-18-2012
awk - Must "touch" a $n-variable to get OFS used?

I'm having a small problem with awk. I tried to use it for replacing ";" with <tab>. But I have to "touch" one variable to get the <tab> in OFS to be used.
Code:
$ echo "xx;yy;zz" | awk -F';' 'BEGIN { OFS="\t" } { print $0; }'
xx;yy;zz                # no OFS used
$ echo "xx;yy;zz" | awk -F';' 'BEGIN { OFS="\t" } { print $0; print $1,$2}'
xx;yy;zz
xx      yy              # only OFS used for "field for field"
$ echo "xx;yy;zz" | awk -F';' 'BEGIN { OFS="\t" } { print $0; print $1,$2; print $0}'
xx;yy;zz
xx      yy
xx;yy;zz                # still no tab for $0
$ echo "xx;yy;zz" | awk -F';' 'BEGIN { OFS="\t" } { print $0; print $1,$2; print $0; $1=$1; }'
xx;yy;zz                # tested to "touch" $1 at the end, no success
xx      yy
xx;yy;zz
$ echo "xx;yy;zz" | awk -F';' 'BEGIN { OFS="\t" } { print $0; print $1,$2; print $0; $1=$1; print $0}'
xx;yy;zz
xx      yy
xx;yy;zz
xx      yy      zz      # ta-dam! here is OFS used, AFTER the "touch"
# and here is a "funny" result, in the first line OFS is used, but not for $0:
$ echo "xx;yy;zz" | awk -F';' 'BEGIN { OFS="\t" } { print "",$0; $1=$1; print "",$0 }'
        xx;yy;zz
        xx      yy      zz

I have googled but haven't find any information. Am I missing something? Or I have to do this:
Code:
echo "xx;yy;zz" | awk -F';' 'BEGIN { OFS="\t" } { $1=$1; print }'

Shell: bash, system: FreeBSD (is that correct info?)
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Command similar to "touch" for modify File size

Hi All, I'm trying to find a command like similar to "touch" which would let me change the file size property. For ex: I have a file of size 1MB using the command i would like to set/update the size something like 1KB. Is it possible? Is there any such command which would accomplish this... (3 Replies)
Discussion started by: sriharshareddyk
3 Replies

2. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

3. Shell Programming and Scripting

Can I make "touch" create executable files by manipulating umask?

I'm getting to grips with this concept of the umask. What I thought was, setting umask uga+rwx would result in creating files with all permissions for everyone. Seems not to be the case though. Read and write bits get set, but not the execute bit. Is there some gap in my understanding, or is... (2 Replies)
Discussion started by: tphyahoo
2 Replies

4. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

5. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

6. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

7. Shell Programming and Scripting

Variable interpolation in "print" of awk command

Hi, I have a snippet like below. Based on variable i, i wish to print 1,2,3,4,5th columns to Sample files. For each loop, one column from contetn and results will be pused to sample files. But i have a problem here i=1 while ; do `awk -F"\t" '{print $($i)}' $content > Sample_${i}_original`;... (4 Replies)
Discussion started by: forums123456
4 Replies

8. Shell Programming and Scripting

Capture the last record number using "awk" NR variable

Hi Team. I am trying to capture the last record number from a file using the below command ( assuming abc.txt has 21 records and I want 21 as output ) awk'{c=NR;print c}'abc.txt But it is printing all the record number. Can someone please help modify the above command? (8 Replies)
Discussion started by: chatwithsaurav
8 Replies

9. Shell Programming and Scripting

awk variable into shell command "date -d": possible...?

Hello, there! I am trying to pass an awk variable into a shell command in order to collect the result into an awk variable; in Bash it does work, as in: v='2'; date -d "now + $v weeks" But in awk it does not, as in: v="2" "date -d 'now + v weeks'" | getline newdate close ("date -d 'now... (3 Replies)
Discussion started by: fbird3
3 Replies

10. Shell Programming and Scripting

Permission error when "touch"ing file with different user

Hi, There are 2 users (T886072 & T864764) that need to be provided full (rwx) access to a directory. I made the changes to the directory permissions using chmod and setfacl : root@digidb2:# chmod 700 /u02/ftpfiles/MFRS16/discount_rates/ root@digidb2:# setfacl -s... (3 Replies)
Discussion started by: anaigini45
3 Replies
touch(1B)					     SunOS/BSD Compatibility Package Commands						 touch(1B)

NAME
touch - change file access and modification times SYNOPSIS
/usr/ucb/touch [-acfm] file... DESCRIPTION
touch sets the access and modification times of each file to the current time. file is created if it does not already exist. OPTIONS
-a Change the access time of file. Do not change the modification time unless -m is also specified. -c Do not create file if it does not exist. -f Attempt to force the touch in spite of read and write permissions on file. -m Change the modification time of file. Do not change the access time unless -a is also specified. USAGE
See largefile(5) for the description of the behavior of touch when encountering files greater than or equal to 2 Gbyte ( 2^31 bytes). EXIT STATUS
The following exit values are returned: 0 touch executed successfully and all requested changes were made. >0 An error occurred. touch returns the number of files for which the times could not be successfully modified. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWscpu | +-----------------------------+-----------------------------+ SEE ALSO
touch(1), attributes(5), largefile(5) SunOS 5.11 26 Oct 1995 touch(1B)
All times are GMT -4. The time now is 11:15 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy