Merge a string to a line extracted from a text file in UNIX

how to merge multiple lines into one line in unix
extract lines from text file linux
awk merge two files line by line
linux extract lines from file containing string
sed extract a line
how to get specific lines from a file in unix
copy specific lines from file unix
use sed to extract lines

I wanted to merge a string ABC to a line that I have extracted from a file.

The following command is used to extract the lines 20-25 in file_ABC, take only the first column, which is then transposed to become a row (or line).

sed -n '20,25p' < file_ABC | awk '{print $1}' | paste -s

This is the result:

2727778 14734   0   0   0   2713044

I would like to add at the first position of this line the string ABC.

ABC 2727778 14734   0   0   0   2713044

Any suggestion on how to do that?

A quick hack would be to use something like

printf 'ABC\t%s\n' "$(sed -n '20,25p' < file_ABC | awk '{print $1}' | paste -s)"

You could modify your initial command instead to use awk for everything, though:

awk '
    BEGIN {printf "ABC"}
    NR>=20 && NR<=25 {printf "\t%s", $1}
    END {print ""}
' file_ABC

How can I both extract a specific line in a text file as well as multiple , Just change the grep output to append,. grep "string" source.txt >> destination.txt. I wanted to merge a string ABC to a line that I have extracted from a file. The following command is used to extract the lines 20-25 in file_ABC, take only the first column, which is then transpos

This might work for you (GNU sed):

sed '20,25{s/\s.*//;H};$!d;x;s/^/ABC/;s/\n/ /g' file

Gather up the first column fields by appending them to the hold space for rows 20 to 25 only. At the end of the file prepend ABC and replace the introduced newlines by spaces.

awk - Join or merge lines on finding a pattern, There is a line with START in-between. We have to join all the lines following the pattern START. $ cat file START Unix Linux START Solaris Aix  Extracting text from a file is a common task in scripting and programming, and Python makes it easy. In this guide, we'll discuss some simple ways to extract text from a file using the Python 3 programming language. Make sure you're using Python 3. Reading data from a text file. Reading text files line-by-line. Storing text data in a variable.

For fun, bash only

filename=file_ABC
words=("${filename##*_}")
i=0
while read -r word rest_of_line; do 
    ((++i < 20 )) && continue
    ((  i > 25 )) && break
    words+=("$word")
done < "$filename"
join() { local IFS=$1; shift; echo "$*"; }
join $'\t' "${words[@]}"

But this will be much slower than a single awk call.

Merge files line by line, To merge files line by line, you can use the paste command. By default, the corresponding lines of each file are separated with tabs. This command is the 

if you want to keep all in one script

$ awk 'BEGIN            {line="ABC"} 
       NR>=20 && NR<=25 {line=line FS $1} 
       NR==25           {print line; exit}' file

improved version as suggested by @EdMorton

$awk 'NR>=20 {line=line OFS $1} 
      NR==25 {print "ABC" line; exit}' file

How to concatenate two strings or several strings into one string in B , The UNIX and Linux Forums. Hi,I'm trying to concatenate @example.com to each line of a file f1.txt. and push it into f2.txt. Here is the code i'm Search for string in a file, extract two another strings and concatenate to a variable. I have a file 

Introducing UNIX and Linux, od dump files in various formats paste merge corresponding lines of text files directories sort sort or merge text files strings display printable strings in a file tail few lines of a file tar create tape archives, and add or extract files touch change​ 

Analysis of Complex Disease Association Studies: A Practical Guide, While Unix text editors can often open and display them they can be awkward to use. to use Unix commands, for example if extracting columns from text files using To merge data, for example a phenotype and genotype file, the join function >diffey dsuppresscommon-lines file1 file2 > differences.txt compares file1 and 

String concatenation in bash – Linux Hint, But, there is no built-in function in bash like other languages to combine string data or Create a file named 'concat1.sh' and add the following code to combine strings. Here, three string data are taken as input at the beginning of the script. to a file named 'customers.txt' to append the values of $combine to the file.

Comments
  • I prefer the awk above the given hack or using | sed 's/^/ABC\t/'.
  • @WalterA Yeah, the hack was mostly "what's the smallest change in OP's code to get what they want", and awk how I'd do it from scratch.
  • @EdMorton thx. Of course that's much better. I blame it on the weekend.