루프 내에서 빌드하는 배열에서 TSV 파일을 만들려고합니다. 각 줄의 값을 탭 구분되도록 가져 오지 만 배열의 각 요소를 새 줄에 내보낼 수는 없습니다. 이 예는 다음과 같습니다bash - 새 줄에 각 배열 요소를 출력합니다.
OUTPUT=()
#header
OUTPUT+=$(printf "col_1\tcol_2\tcol_3")
param_1="bla"
param_2="tra"
param_3="meh"
for i in 1 .. 3
do
OUTPUT+=$(printf "$param_1\t$param_2\t$param_3")
done
#export
printf '%s\n' "${OUTPUT[@]}" > test.tsv
나는 또한 내가 배열에 삽입 각 문자열의 끝에서 \n
을 넣어 시도했다, 그러나 그것은 작동하지 않았다. 내가 뭘 잘못하고 있는거야? 당신이
이 파일에 끝날 것 경우, 중간 어레이 층을 할 필요가 없습니다, 당신은 직접 파일 요소를 작성할 수 있습니다. 비행 중 파일을 볼 수 없도록하려면 임시 파일을 사용하고 마지막에 최종 이름으로 이동할 수 있습니다. – karakfa
네, 장래에 스크립팅을 사용하려는 경우, 이것은 파일에 쓰는 방법이 아닙니다 (그래도 가능합니다). 데이터 조작 (및 파일 읽기/쓰기)을 위해 설계된 도구를 학습하는 것이 더 좋습니다. [awk tutorial] (http://grymoire.com/Unix/awk.html)을 확인하거나 무제한 제어 및 시스템 기능, OO 등이 필요한 경우 Python 또는 Perl 자습서를 찾아보십시오. 행운을 빕니다. – shellter
@karakfa 임시 파일을 사용하지 않고 모든 반복마다 쓰기를하지 않을 것입니다. 왜 버퍼링 되더라도 출력은 절반 MB를 초과하지 않습니다. 마지막에 한 번만 출력 할 수 있습니다. 그렇습니까? 귀하의 의견에 대해 – Marius