0

I have a batch of .txt files I want to combine so I can import into another program. This program is limited by 2GB data packets at a time but the total of the files will be 20GB.

Is it possible to combine the .txt files, limiting to 2GB each time, giving a total of 10x 2GB combined files? I'd like to add it to a script.

I am running script with the commands as:

cat $full/blank/ascii/*/*xyz > $full/blank/ascii/output.txt
split -b 2000m $full/blank/ascii/ouput.txt

But when I run this, it says

line 1: /blank/ascii/output.txt: no such file or directory.

I have the full pathway at the start of the file too. Is it also possible to split a file and send the output to seperate folder?

6
  • What's wrong with putting the commands into your script? Why won't that work for you? Commented Oct 28, 2019 at 11:58
  • I am running script with the cmds as: cat $full/blank/ascii/*/*xyz > $full/blank/ascii/output.txt then split -b 2000m $full/blank/ascii/ouput.txt when i run this, it says line 1: /blank/ascii/output.txt: no such file or directory. I havefull pathway at the start of the file too Commented Oct 28, 2019 at 12:14
  • Please would you put that update into your question, where it can be seen and easily read by everyone. Commented Oct 28, 2019 at 12:30
  • The error message you see would indicate that the expression $full you are using in your path specifications is undefined (notice the path it reports starts with /blank?). Perhaps if you posted the script, too, the community might be able to help in debugging it. Commented Oct 28, 2019 at 12:32
  • thank you, I corrected my $full path, it is now running. just need to send the new files to the correct folder Commented Oct 28, 2019 at 12:35

1 Answer 1

0

You haven't defined $full, so the command cat $full/blank/ascii/*/*xyz > $full/blank/ascii/output.txt is being evaluated with that as an empty string:

cat /blank/ascii/*/*xyz > /blank/ascii/output.txt

Furthermore, since the interpreter reports that this is on line 1 of your script, I would guess you've not got a #! interpreter defined there yet. I would really recommend you get used to providing one of these at the start of every script you write.

#!/bin/bash

full=/path/somewhere/...

cat $full/blank/ascii/*/*xyz > $full/blank/ascii/output.txt
split -b 2000m $full/blank/ascii/ouput.txt
3
  • Thank you, I have edited the currect $full path and it now runs. I just need out to edit my split cmd to send output files to seperate folder with a .txt prefix Commented Oct 28, 2019 at 12:57
  • thank you for the help. Would you know how i can use the split command to send created files to a separate folder with a new .txt prefix? many thanks Commented Oct 28, 2019 at 14:15
  • @AJOS man split and look for the PREFIX option Commented Oct 28, 2019 at 14:36

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.