How to copy one column from many files to a new file?
1
0
Entering edit mode
4.4 years ago
Seq225 ▴ 110

Hello

I have 200 files. Each has 2 columns. I want to copy the first column from each of the 200 files into a new file. The new file will have 200 columns. How to do this (using awk/cut/paste etc). I have tried awk, but putting it in a for loop is difficult and I have failed to do so.

Thank you for your help!!

sequence genome assembly • 1.8k views
ADD COMMENT
2
Entering edit mode

It would help if you could provide a sample. Is it a plain text file, does it contain non-ascii characters? Are there headers that you want to preserve? What is the separator between columns? Are there spaces in the entries?

ADD REPLY
2
Entering edit mode
4.4 years ago

I know you wanted an awk/cut solution, but this Rscript does the trick. Save it to a folder as script.R that has the 200 txt files and it'll automatically merge them and save it as "merged.txt"

Rscript script.R

if(!require("tidyverse")) install.packages("tidyverse")
files <- list.files(pattern = "\\.txt$")
files <- purrr::map(files, ~ readr::read_tsv(.x, col_names = FALSE)) 
files <- purrr::map(files, ~ .x[1])
files <- dplyr::bind_cols(files)
readr::write_csv(files, path = "merged.txt", col_names = FALSE)
ADD COMMENT
0
Entering edit mode

Thanks a ton! It works!!

ADD REPLY
0
Entering edit mode

Seq225 : Besides thanking posters, please accept answers (green check mark) to validate them and provide closure to the thread. Do this for your past questions as well. You can accept more than one answer if they work.

ADD REPLY

Login before adding your answer.

Traffic: 2819 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6