Sponsored Content
Top Forums Shell Programming and Scripting Removing duplicate items from an array Post 303007390 by Don Cragun on Thursday 16th of November 2017 04:32:31 AM
Old 11-16-2017
I don't think your code works as well as you think it does. Try running your script again telling it that you want it to process 5 numbers and then enter the same number 5 times. Do you get the results you wanted? Then try running your script again telling it that you want it to process 5 numbers and then enter 1, 2, 1, 3, and 1. Would you expect the final result to be 2 3 1 or 1 2 3?

See if this works better for you:
Code:
#!/bin/bash
echo "This is a sample Prog to remove duplicate integer items from an array"
echo "How many numbers do you want to insert"
read n
for (( i=0; i<$n; i++ ))
do
	echo "Enter Number"
	read num
	arr[i]=$num
done
echo "Insertion is done, Below are the elements of the array"
echo ${arr[@]}

for (( i=0; i<$((n-1)); i++ ))
do
	echo "------------arr[i] here is ${arr[i]}-------" 
	for (( j=$((i+1)); j<$n; j++ ))
	do
		echo "arr[j] here is ${arr[j]}"
		if [[ arr[i] -eq arr[j] ]]
		then
			echo "There is a duplicate!!"
			arr=(${arr[@]:0:$j} ${arr[@]:$((j+1))})
			((j--))
			((n--))
		fi
	done
done
echo ${arr[@]}

This seems to work OK with both bash version 3.2.57(1)-release (x86_64-apple-darwin16) and with ksh version (AT&T Research) 93u+ 2012-08-01. I assume it will also work with more recent releases of both of these shells.
These 3 Users Gave Thanks to Don Cragun For This Post:
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

removing duplicate lines from a file

Hi, I am trying to remove duplicate lines from a file. For example the contents of example.txt is: this is a test 2342 this is a test 34343 this is a test 43434 and i want to remove the "this is a test" lines only and end up with the numbers in the file, that is, end up with: 2342... (4 Replies)
Discussion started by: ocelot
4 Replies

2. Shell Programming and Scripting

removing items with repeated first 3 character

AWK help: I have a file with following format. I need to remove any entries which are repeated based on first 3 characters. So from the following files I need to remove any entries start with "mas". mas01bct mas02bct mas03bct mas01bct mas01bct mas01bct mas11bct mas01bct mas01bct... (11 Replies)
Discussion started by: amir07
11 Replies

3. Shell Programming and Scripting

removing items from a file with batch

Please assist with awk scirpts: I need to remove items from a file in a batch: The file that I will remove from has the following format: abc00tef:10.81.12.3 abc01tef:10.81.12.3 abc02tef:10.81.12.3 abc03tef:10.81.12.3 abc04tef:10.81.12.3 abc05tef:10.81.12.3 I have a file which... (5 Replies)
Discussion started by: amir07
5 Replies

4. Programming

Removing Items In A ListView

Hi everyone! So I have a listView on my Form named "officeView" I already have the code to add and update info into it, but Im having troubles deleting items out of it. :/ Now I know how to delete an Item from the listView, but I want the item before the deleted item to become automatically... (0 Replies)
Discussion started by: romeo5577
0 Replies

5. Shell Programming and Scripting

Removing Duplicate Variables : SED?

I have a file that needs to index and remove all duplicate variables (keeping the first of the duplicated). Then in another file, from the index I need to find and replace all those duplicated variables we deleted with their primary variable (the one we kept). I think this is a SED question, but if... (13 Replies)
Discussion started by: Blue Solo
13 Replies

6. Shell Programming and Scripting

Add items to ksh array

Hi I need a code help put below items in to array and display in order like this Thanks, Ashan 0AD4 R2 03A1 000198701333 0AD4 R1 270B 000198701616 ------ 0AD4 R2 03A1 000198701333 0AD4 R1 270B 000198701616 (1 Reply)
Discussion started by: ashanabey
1 Replies

7. Shell Programming and Scripting

sed to delete items in an array from a file

I need to create a shell script to delete multiple items (Strings) at a time from a file. I need to iterate through a list of strings. My plan is to create an array and then iterate through the array. My code is not working #!/bin/bash -x declare -a array=(one, two, three, four)... (5 Replies)
Discussion started by: bash_in_my_head
5 Replies

8. Shell Programming and Scripting

Pass an array to awk to sequentially look for a list of items in a file

Hello, I need to collect some statistical results from a series of files that are being generated by other software. The files are tab delimited. There are 4 different sets of statistics in each file where there is a line indicating what the statistic set is, followed by 5 lines of values. It... (8 Replies)
Discussion started by: LMHmedchem
8 Replies
PEEKFD(1)							   User Commands							 PEEKFD(1)

NAME
peekfd - peek at file descriptors of running processes SYNOPSIS
peekfd [-8,--eight-bit-clean] [-n,--no-headers] [-f,--follow] [-d,--duplicates-removed] [-V,--version] [-h,--help] pid [fd] [fd] ... DESCRIPTION
peekfd attaches to a running process and intercepts all reads and writes to file descriptors. You can specify the desired file descriptor numbers or dump all of them. OPTIONS
-8 Do no post-processing on the bytes being read or written. -n Do not display headers indicating the source of the bytes dumped. -c Also dump the requested file descriptor activity in any new child processes that are created. -d Remove duplicate read/writes from the output. If you're looking at a tty with echo, you might want this. -v Display a version string. -h Display a help message. FILES
/proc/*/fd Not used but useful for the user to look at to get good file descriptor numbers. ENVIRONMENT
None. DIAGNOSTICS
The following diagnostics may be issued on stderr: Error attaching to pid ... An unknown error occured while attempted to attach to a process.. you may need to be root. BUGS
Probably lots. Don't be surprised if the process you are monitoring dies. AUTHOR
Trent Waddington <trent.waddington@gmail.com> SEE ALSO
ttysnoop(8) Linux APRIL 2007 PEEKFD(1)
All times are GMT -4. The time now is 10:46 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy