所以我想根據第8列將一個相當大的文件拆分成幾個小文件。所以我寫這個劇本:Bash將大文件拆分成更小的文件
#!/bin/bash
run_command(){
eval ${1}
wait
}
chInput=("1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "Z" "T" "G" "F" "A" "D" "P")
sampInput=("heyA")
for ((x=0;x<${#chInput[@]};x++));do
com="awk -F'\t' '$8=="${chInput[x]}"' /home/location/"$sampInput"_This_P.txt > "$sampInput"Ch"${chInput[x]}".txt"
run_command "${com}"
done
但它不是因爲
「$ 8 ==」
awk: ==1
awk:^syntax error
awk: ==2
awk:^syntax error
awk: ==3
awk:^syntax error
awk: ==4
awk:^syntax error
但只是在做工作
awk -F'\t' '$8==1' /home/location/heyA_This_P.txt > Ch1.txt
來自命令行的
沒有工作
我能做些什麼來解決這個問題?
我試圖這樣做的原因是因爲我運行這個文件和另一個文件的比較,因爲它的大小,程序掛在這個文件上。我想玩,看看我是否可以採取懶惰的方式,分割文件,而不是重寫一些代碼。我讀了一些文章說它會起作用,有些人說它不會,我想親自看看 – Stephopolis