2017-06-09 113 views
-1

我想用這個腳本來創建一個文件名列表(包括它們的路徑),並且每個路徑都用逗號分隔,所以理想情況下,輸出如下所示:file1 .txt,file2.txt,file3.txt等等。我如何去做這件事?cat命令給出「沒有這樣的文件或目錄」

#!/bin/bash 
LEFT=/home/ndevon/USER/SRA/PE/*_1.fastq.gz 
for f in $LEFT; do 
    cat "${f}," >> /home/ndevon/USER/left_list.txt 
done 
+1

爲什麼有'$ {F}'後逗號? – Jens

+2

我想你是指'echo',而不是'cat' – mustaccio

+0

@mustaccio或者更好的是printf,因爲echo會附加一個換行符。 – Jens

回答

1

你想要的是可能

echo /home/ndevon/USER/SRA/PE/*_1.fastq.gz | tr ' ' , 

它轉換空格逗號。只要您的文件名不包含空格,這就可以工作。

+0

即使空格在文件名中也可以使用: 'ls -1/home/ndevon/USER/SRA/PE/* _ 1.fastq.gz | tr'\ n'','' – Jack

0

試試這個:

# read the filenames into an array 
files=(/home/ndevon/USER/SRA/PE/*_1.fastq.gz) 

# print the filenames comma-separated 
IFS=, 
echo "${files[*]}" > output_file 
相關問題