sh ldif-to-csv.sh

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh ldif-to-csv.sh相关的知识,希望对你有一定的参考价值。

#!/bin/bash
#
# Converts LDIF data to CSV.
# Doesn't handle comments very well. Use -LLL with ldapsearch to remove them.
#
# 2010-03-07
# dsimmons@squiz.co.uk
#

# Show usage if we don't have the right params
if [ "$1" == "" ]; then
	echo ""
	echo "Usage: cat ldif.txt | $0 <attributes> [...]"
	echo "Where <attributes> contains a list of space-separated attributes to include in the CSV. LDIF data is read from stdin."
	echo ""
	exit 99
fi

ATTRS="$*"

c=0
while read line; do

	# Skip LDIF comments
	[ "${line:0:1}" == "#" ] && continue;

	# If this line is blank then it's the end of this record, and the beginning
	# of a new one.
	#
	if [ "$line" == "" ]; then

		output=""

		# Output the CSV record
		for i in $ATTRS; do

			eval data=\$RECORD_${c}_${i}
			output=${output}\"${data}\",

			unset RECORD_${c}_${i}

		done

		# Remove trailing ',' and echo the output
		output=${output%,}
		echo $output

		# Increase the counter
		c=$(($c+1))
	fi

	# Separate attribute name/value at the semicolon (LDIF format)
	attr=${line%%:*}
	value=${line#*: }

	# Save all the attributes in variables for now (ie. buffer), because the data
	# isn't necessarily in a set order.
	#
	for i in $ATTRS; do
		if [ "$attr" == "$i" ]; then
			eval RECORD_${c}_${attr}=\"$value\"
		fi
	done

done

以上是关于sh ldif-to-csv.sh的主要内容,如果未能解决你的问题,请参考以下文章

如何使我的命令行在具有扩展名(.sh)和名称如“weird.sh.sh.sh”的文件上工作

sh sh_template.sh

sh sh.sh

Linux下面如何运行 SH文件

配置告警系统主脚本main.sh mon.sh load.sh 502.sh disk.sh

shell 脚本各种执行方式(source ./*.sh, . ./*.sh, ./*.sh)的区别