나는 tsv 단어 파일을 가지고 있으며 파일에 몇 개의 사중주가 있는지 계산하고 파일 이름과 사중주 수를 csv 파일로 내보내는 bash를 작성하고 싶습니다.
예를 들어, fileName.tsv 파일의 경우: I,have,this,word,cat,home,dog,day
결과는 fileName.tsv,2의 csv 파일이 됩니다.
답변1
이 같은
$ echo "I,have,this,word,cat,home,dog,day"|gawk -F, '{printf("%d\n", NF/4)}'
2
답변2
사중주 수를 구하려면 정수 나누기를 사용하여 4로 나누어 단어 수를 세면 됩니다.
먼저, sed 's/,/ /g'
단어 수를 쉽게 파싱할 수 있도록 with 로 바꾸겠습니다. 그런 다음 그것을 입력하여 단어 수를 세었습니다. 마지막으로 나는 정수 나누기를 수행하곤 했습니다. 다음과 같습니다.,
wc -w
bash
$(( x / 4 ))
$ cat fileName.tsv
I,have,this,word,cat,home,dog,day
$ sed 's/,/ /g' fileName.tsv
I have this word cat home dog day
$ sed 's/,/ /g' fileName.tsv | wc -w
8
$ echo $(( $(sed 's/,/ /g' fileName.tsv | wc -w) / 4 ))
2
csv 파일을 만들기 위해 <filename,quartet>을 사용한다고 언급하셨습니다. bash에서 루프를 사용하여 패턴과 일치하는 각 파일을 구문 분석할 수 있도록 두 줄 이상이 필요하다고 가정합니다.
for filename in *.tsv; do
quartet=$(( $(sed 's/,/ /g' $filename | wc -w) / 4 ))
echo $filename,$quartet >> output.csv
done