nawk '
	BEGIN {
		LETTER[1] = "x";
		LETTER[2] = "y";
		LETTER[3] = "z";
		LETTER[4] = "w";
		SIGN[0] = "+";
		SIGN[1] = "-";
		WORDSIGN[0] = "plus";
		WORDSIGN[1] = "minus";
		for ( i = 1; i< 5; i++ ) {
			cmd = "weedcube weeddim "i" < tesseract > cube"LETTER[i];
			print cmd;
			system(cmd);
			for ( j = 0; j < 2; j++) {
				cmd = "weedcube weeddim "i" "WORDSIGN[j]" < cube"LETTER[i]" > cube"LETTER[i]SIGN[j];
				print cmd;
				system(cmd);
				for ( k = 1; k< 5; k++) {
					if ( k != i ) {
					cmd = "weedcube weeddim "k" < cube"LETTER[i]SIGN[j]" >square"LETTER[i]SIGN[j]LETTER[k];
					print cmd;
					system(cmd);
						for ( l = 0; l < 2; l++) {
							cmd = "weedcube weeddim "k" "WORDSIGN[l]" < square"LETTER[i]SIGN[j]LETTER[k]" > square"LETTER[i]SIGN[j]LETTER[k]SIGN[l];
							print cmd;
							system(cmd);
							for ( m = 1; m< 5; m++) {
								if ( (m != i) && (m != k) ) {
								cmd = "weedcube weeddim "m" < square"LETTER[i]SIGN[j]LETTER[k]SIGN[l]" >segment"LETTER[i]SIGN[j]LETTER[k]SIGN[l]LETTER[m];
								print cmd;
								system(cmd);
									for ( n = 0; n < 2; n++) {
										cmd = "weedcube weeddim "m" "WORDSIGN[n]" < segment"LETTER[i]SIGN[j]LETTER[k]SIGN[l]LETTER[m]" > segment"LETTER[i]SIGN[j]LETTER[k]SIGN[l]LETTER[m]SIGN[n];
										print cmd;
										system(cmd);
									}
								}
							}
						}
					}
				}
			}
		}
	}
' $@
