Field Separator in printf (awk)


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Field Separator in printf (awk)
# 8  
Old 11-06-2013
Quote:
@RavinderSingh13 I do not want the blank spaces.
@Don Cargun Thanks for explication and for the good solution

Here is another way


Code:
awk '{v=sprintf("%-15s%s",$1,$2);gsub(/ /,"-",v);print v}' tsome-----------datahere_is_more---information
this may help too.

Code:
awk -vs1="-------------------" -F" " '{print $1s1$2}' file_name

Output will be as follows.

Code:
ome-------------------data
here_is_more-------------------information



thanks,
R. Singh
# 9  
Old 11-06-2013
@RavinderSingh13
Not to very much help, since format of column are lost.
information should be just below data
# 10  
Old 11-06-2013
Hello Jotne,

Could you please try the following, not sure if it is good, but I tried my best to do this. Please take a look and see if this helps. Let us say input file is check_OFS_and_variable.

Code:
if [[ -f file_temp1 ]]
then
rm file_temp1
fi
 
if [[ -f file_temp ]]
then
rm file_temp
fi
 
echo "enter the number of dash you want"
read v
nine=9
if [[ $v -ge $nine ]]
then

b=`awk -F" " 'NR==1 {print$1}' check_OFS_and_variable`
a=`awk -F" " 'NR==2 {print$1}' check_OFS_and_variable`
e=`echo $b | wc -c`
f=`echo $a | wc -c`
##echo $e
let "t = v + e"
let "p = t - f"
 
##echo $p
OFS=`echo "-"`
i=0
value1_1=`awk -F" " 'NR==1 {print$1}' check_OFS_and_variable`
value1_2=`awk -F" " 'NR==1 {print$2}' check_OFS_and_variable`
echo $value1_1
value2_1=`awk -F" " 'NR==2 {print$1}' check_OFS_and_variable`
value2_2=`awk -F" " 'NR==2 {print$2}' check_OFS_and_variable`
echo $value1_1 >> file_temp
while [[ $i -le $v ]]
do
echo $OFS >> file_temp
let "i = i +1"
done
echo $value1_2 >> file_temp
i=0
echo $value2_1
echo $value2_1 >> file_temp1
while [[ $i -le $p ]]
do
echo $OFS >> file_temp1
let "i = i + 1"
done
echo $value2_2 >> file_temp1
 
awk '{print $0}' ORS="" file_temp
echo "\n"
awk '{print $0}' ORS="" file_temp1
 
else
 
echo "print enter more than 9 times."
fi

Output will be as follows.

Code:
ome----------------data
here_is_more-------information

Not sure it is not coming properly as it comes in box. Please try and let us know.


EDITED Text: sorry just now realized that script will work if user have entered number more than 8 so changed accordingly. Smilie

Thanks,
R. Singh

Last edited by RavinderSingh13; 11-06-2013 at 01:35 PM.. Reason: commented the echo in b/w
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk field separator not working

Hi, can some some help to get me the right results, I have few text files, need to grep few columns from each file and get the results in one row with comma separated. my code is #folder=/nz/kit/log/backupsvr folder=/export/home/nz/valai/tmpfiles/ echo $folder for entry in `ls... (4 Replies)
Discussion started by: ValaiG
4 Replies

2. Shell Programming and Scripting

awk field separator help -

Hi Experts , file : - How to construct the awk filed separator so that $1, $2 $3 , can be assigned to the each "" range. I am trying : awk -F"]" '{print $1}' but it is printing the entire file. Not first field. The desired output needed for first field... (9 Replies)
Discussion started by: rveri
9 Replies

3. Shell Programming and Scripting

awk field separator

I need to set awk field separator to ";", but I need to avoid ";EXT". so that echo a;b;c;EXTd;e;f | awk -F";" '{print $3}' would give "c;EXTd" (2 Replies)
Discussion started by: locoroco
2 Replies

4. UNIX for Dummies Questions & Answers

awk - output field separator

In awk, how do I print all fields with a specified output field separator? I have tried the following, which does not print the output FS: echo a b c d | awk 'BEGIN{OFS = ";"}{print $0}' (3 Replies)
Discussion started by: locoroco
3 Replies

5. Shell Programming and Scripting

awk - show field separator

I am using this code to insert something into a csv file: awk -F";" -v url=$url -v nr=$nr 'NR==nr{$2=url$2}1' file Why do I get the output field1 field2 instead of field1;field2 I have given -F";", so the field separator should surely be ";". (1 Reply)
Discussion started by: locoroco
1 Replies

6. Shell Programming and Scripting

awk, comma as field separator and text inside double quotes as a field.

Hi, all I need to get fields in a line that are separated by commas, some of the fields are enclosed with double quotes, and they are supposed to be treated as a single field even if there are commas inside the quotes. sample input: for this line, 5 fields are supposed to be extracted, they... (8 Replies)
Discussion started by: kevintse
8 Replies

7. Shell Programming and Scripting

awk (nawk) field separator

Hi; i have a file and i want to get; - If the last word in line 14 is NOT equal to "Set."; then print 2nd, 3rd, 4th and 5th values of 3rd line. and my code is: nawk 'NR==14 {if ($NF!="Set.") (NR==3{print $2,$3,$4,$5}) }' file.txt but no result?? :confused::(:confused::( (4 Replies)
Discussion started by: gc_sw
4 Replies

8. Shell Programming and Scripting

Field separator in awk

Hi I need to check if field separator I am using in awk statement is " : ", for example: TIME=12:59 HOUR=`echo "$TIME" | awk '{FS=":"; print $1}'` MINUTES=`echo "$TIME" | awk '{FS=":"; print $2}'` Is there a way to check within the above awk statement ? Thanks for help -A (2 Replies)
Discussion started by: aoussenko
2 Replies

9. UNIX for Dummies Questions & Answers

Can't figure out what field separator to use in awk....

Hi Friends, Scripting newb here. So I'm trying to create a geektool script that uses awk and printf to output certain fields from top (namely command, cpu%, rsize, pid and time, in that order). Here's the input from the top process that I'm putting into awk: PID COMMAND %CPU ... (3 Replies)
Discussion started by: thom.mattson
3 Replies

10. Shell Programming and Scripting

awk field separator or print command

Hello Experts, I am back, with another doubt. I am not sure what it relates to this time - awk or the print command actually. I'll explain the scenario: I have a huge file, and it has some traces(logs). In between those logs, there are statements with some SQL queries. All I want to do is... (4 Replies)
Discussion started by: hkansal
4 Replies
Login or Register to Ask a Question