1
$\begingroup$

Is it possible to write a code, telling MMA to join 2 (or even more) .txt-files without importing them?

$\endgroup$
7
  • $\begingroup$ Something like cat then? $\endgroup$
    – J. M.'s torpor
    Apr 7 '16 at 9:50
  • $\begingroup$ @J.M. hmm, don't know what cat means, except a pet... $\endgroup$
    – Kay
    Apr 7 '16 at 10:32
  • $\begingroup$ cat is Unix-style command line command $\endgroup$
    – Rom38
    Apr 7 '16 at 10:34
  • $\begingroup$ sounds like this is what I mean, as I can force MMA to rename files, I thought this joining might also work somehow. Looks like there is no such command, isn't there? $\endgroup$
    – Kay
    Apr 7 '16 at 10:36
  • 1
    $\begingroup$ cat: en.wikipedia.org/wiki/Cat_(Unix) Run: reference.wolfram.com/language/ref/Run.html Could be a goer? $\endgroup$ Apr 7 '16 at 10:44
1
$\begingroup$

Lets say you have two files 1.txt and 2.txt. You open your terminal, go to the folder and type

cat 1.txt 2.txt > new.txt

It will give you a new file new.txt combining the content of 1.txt and 2.txt

But this is not an answer for mathematica community. Lets do the same thing with mathematica.

First I shall create several files.

SetDirectory[NotebookDirectory[]]
Do[Export[ToString[i] <> ".txt", {Join[ConstantArray["blah", i], {"\n"}]}, "Table"], {i, 7}]

Now I have 7 files to combine. I am going to create the bash command for cat and then Run it.

com = "cat ";
Do[com = com <> ToString[i] <> ".txt ", {i, 7}]
com = com <> " > out.txt"
Run[com]

Now you have a file out.txt will everything.

$\endgroup$
2
  • 1
    $\begingroup$ This kind of still isn't an answer for the MMA community and cat is platform specific. $\endgroup$
    – LLlAMnYP
    Apr 7 '16 at 22:08
  • $\begingroup$ I agree @LLlAMnYP, but this is the best I can do with MMA without importing the file :| . $\endgroup$
    – Sumit
    Apr 9 '16 at 11:26
3
$\begingroup$
Run["cat file1.txt file2.txt > newfile.txt"]

But be sure to set your working directory to the folder with the files in first:

SetDirectory["~/Desktop/Text Cat"]
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.