複数のカンマ区切りファイルがあり、最初に行を1つにマージしてから、その行をoutput.csvファイルに追加できます。
ファイル1.txt:
CV-1999-0001,
CV-1999-0002,
CV-1999-0003,
CV-1999-0004,
CV-1999-0005,
...
ファイル2.txt:
CV-2000-0006,
CV-2000-0007,
CV-2000-0008,
....
出力.csv:
IDs
CV-1999-0001,CV-1999-0002,CV-1999-0003,CV-1999-0004,CV-1999-0005
CV-2000-0006,CV-2000-0007,CV-2000-0008,CV-2000-0009,CV-2000-0010
私はこれを試してみましたが、何も私が必要なことをしていないようです。まだ複数の行が表示されます。
echo $(cat /Users/...../"$ROWS".txt) | sed 's/ //g' > "$ROWS_new".txt
echo $(cat paste -s -d "" files-1.txt) | sed 's/ //g' >> output.csv
ベストアンサー1
GNU awkを使用して複数文字のRSを実行し、各ファイルをメモリに読み込みます。
$ awk -v RS='^$' -F',\n' -v OFS=',' '{$1=$1}1' file-1.txt file-2.txt
CV-1999-0001,CV-1999-0002,CV-1999-0003,CV-1999-0004,CV-1999-0005,
CV-2000-0006,CV-2000-0007,CV-2000-0008,
あるいは、複数文字のRSおよびENDFILEにGNU awkを使用して、一度に1行ずつ読み込みます。
$ awk -v RS=',\n' -v ORS=',' '1; ENDFILE{printf "\n"}' file-1.txt file-2.txt
CV-1999-0001,CV-1999-0002,CV-1999-0003,CV-1999-0004,CV-1999-0005,
CV-2000-0006,CV-2000-0007,CV-2000-0008,
または、一度に1行ずつ読みたい場合は、awkを使用します。
$ awk '
FNR==1 { printf "%s%s", prev, ors; ors=ORS }
FNR>1 { printf "%s", prev }
{ prev=$0 }
END { print prev }
' file-1.txt file-2.txt
CV-1999-0001,CV-1999-0002,CV-1999-0003,CV-1999-0004,CV-1999-0005,
CV-2000-0006,CV-2000-0007,CV-2000-0008,
入力ファイルの最後の行がsで終わると,
簡単に削除できますが、質問の例の入力がsで終わるため、...
入力ファイルが実際にsで終わっているかどうかはわかりません,
。運動として。