#
#	This is Sub Makefile to Extract from ASCII.
#

#### Input extention ####
# Defined at Main

#### Suffixes rule ####

#### INCLUDE ####
# Use TIPS File.
# -include ${EOS_HOME}/tutorial/TIPS/XXXX/Makefile/Makefile-lib

#### Definition ####
# Defined at Main

#### Rules of the list created ####


##### Commands #####
help_ASCII::
	@echo
	@echo "ASCII"
	@echo "This is Sub Makefile to Extract from ASCII."
	@echo
	@echo "	(Command):"
	@echo "		ExtractLine:	 		Extract some lines from ASCII. "
	@echo "		(Setting Data):"
	@echo "			ASCII_S_LINE:		Start of extracted line. (count from top=1)"
	@echo "			ASCII_E_LINE:		End of extracted line. (count from bottom=1)"
	@echo
	@echo "		ExtractColumn:	 		Extract some columns from ASCII. "
	@echo "		(Setting Data):"
	@echo "			ASCII_CLMN:		Extracted column list.(e.g. \"0 2 3\")"
	@echo "			(NOTE)	If the column is undefined, finish extracting."
	@echo "				If the column is defined to 0, write the line number there."
	@echo "			ASCII_DELIMITER:	Delimiter between columns. (undefined -> tab space)"
	@echo
	@echo "	(Setting Data):"
	@echo "		IN_ASCII_FILE_NAME:		Input file name."
	@echo "		IN_ASCII:			Input file extention"
	@echo "		OUT_ASCII_FILE_NAME:		Output file name."
	@echo "		OUT_ASCII:			Output file extetion."
	@echo

ExtractLine::
	@INPUT="$(IN_ASCII_FILE_NAME).$(IN_ASCII)"; \
	Tline=$$(wc -l $$INPUT | awk '{printf("%d\n", $$1)}'); \
	if [ -z $(ASCII_S_LINE) ]; then \
		Sline=1; \
	else \
		Sline=$(ASCII_S_LINE); \
	fi; \
	if [ -z $(ASCII_E_LINE) ]; then \
		Eline=1; \
	else \
		Eline=$(ASCII_E_LINE); \
	fi; \
	HEAD=`expr $$Tline + 1`; \
	HEAD=`expr $$HEAD - $$Eline`; \
	if [ $$HEAD -lt 1 ] ; then \
		HEAD=1; \
	elif [ $$Tline -lt $$HEAD ] ; then \
		HEAD=$$Tline; \
	fi; \
	TAIL=`expr $$HEAD + 1`; \
	TAIL=`expr $$TAIL - $$Sline`; \
	TlineT=`expr $$Tline - $$Eline + 1`; \
	if [ $$TAIL -lt 1 ] ; then \
		TAIL=1; \
	elif [ $$TlineT -lt $$TAIL ] ; then \
		TAIL=$$TlineT; \
	fi; \
	head -$$HEAD $$INPUT | tail -$$TAIL > "$(OUT_ASCII_FILE_NAME).$(OUT_ASCII)"; \
	echo "Extract lines `expr $$HEAD - $$TAIL + 1` - $$HEAD"

ExtractColumn::
	@${RM} $(OUT_ASCII_FILE_NAME).$(OUT_ASCII);
	@if [ -z "$(ASCII_DELIMITER)" ] ; then \
		dl='\t'; \
	else \
		dl=$(ASCII_DELIMITER); \
	fi; \
	num=1; \
	while read line ; \
	do \
		for clmn in $(ASCII_CLMN) ; \
		do \
			if [ $$clmn -gt 0 ] ; then \
				echo $$line | awk -v v=$$clmn -v dl=$$dl '{printf("%s%s"), $$v, dl}' >> "$(OUT_ASCII_FILE_NAME).$(OUT_ASCII)"; \
			else \
				echo $$line | awk -v v=$$num -v dl=$$dl '{printf("%s%s"), v, dl}' >> "$(OUT_ASCII_FILE_NAME).$(OUT_ASCII)"; \
			fi; \
		done; \
		echo >> "$(OUT_ASCII_FILE_NAME).$(OUT_ASCII)"; \
		numH=`expr $$num % 100`; \
		if [ $$numH -eq 0 ] ; then \
			echo "$$num line is extracted."; \
		fi; \
		num=`expr $$num + 1`; \
	done < "$(IN_ASCII_FILE_NAME).$(IN_ASCII)";

##### Commands(Input to Output) #####

