Question

I am trying to combine cat and tail commands:

Like this:

I have file name "text1" and want to combine to file name "text2". But first I wanted to remove 7 lines from file text1 before I combine to file "text2"

     tail --lines=+7 text1 | cat  text2 > out_put 

This does not work for me on Ubuntu 12.04

Was it helpful?

Solution

{ tail --lines=+7 text1; cat text2; } > out_put 

or

tail --lines=+7 text1 | cat - text2 > out_put 

Passing - tells cat to read from stdin first, then from text2.

OTHER TIPS

Do it in two steps/commands:

tail --lines=+7 text1 > output
cat text2 >> output

Or even like this, that will perform the second if the first was successful:

tail --lines=+7 text1 > output && cat text2 >> output

Note that we use >> to append data to the file, so it will be added after the previous data existing in the file. With > we just delete everything that was there before.

An alternative is to use a "here-string" (described in man bash):

cat - <<< "$(tail --lines=+3 text1)" text2 > out_put
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top