#!/usr/bin/bash
LIST=/tmp/list
while [[ "$c" != "2" ]]
do
echo "1 - Enter a name
2 - display $LIST
3 - Exit"
echo "Make your choice 1/2/3: "
read c
case $c in
1)
echo "Enter the name :"
read a
if ( ! grep ^"$a"$ $LIST >/dev/null 2>&1 )
then
echo "$a" >>$LIST
echo "$a has been added to $LIST"
else
echo "filename $a already existing in $LIST, wanna remove it from list y/[n]?"
read q
case $q in
y|Y) grep -v ^"$a"$ $LIST >$LIST.tmp ; mv $LIST.tmp $LIST ; echo "$a removed from $LIST" ;;
n|N) echo "ok $a will stay in $LIST" ;;
*) echo "wrong choice, $LIST will stay as is" ;;
esac
fi
;;
2) cat $LIST ;;
3) exit 0 ;;
*) echo "Wrong choice, try again..." ;;
esac
done
---------- Post updated at 01:25 AM ---------- Previous update was at 12:54 AM ----------
Could modify the code and add something like and call remove_once "$a"
Code:
remove_once(){
flag=0
while read a
do if [ "$a" = "$1" ]
then
if [ $flag -eq 0 ]
then
echo "$a" >>$LIST.tmp
let flag++
fi
else
echo "$a" >>$LIST.tmp
fi
done <$LIST
mv $LIST.tmp $LIST
}
Last edited by ctsgnb; 10-25-2010 at 09:36 AM..
Reason: with indentation ... so Scruti will be happy ;)
I am trying to write a housekeeping bash script. Part of it involves searching all of my attached storage media for photographs and moving them into a single directory. The problem occurs when files have duplicate names, obviously a file called 001.jpg will get overwritten with another file... (6 Replies)
Hello,
I have three lines I need to add to hundreds of files. The files are all in the same format and contain the same information. I want to add the same information to the files.
The new lines of information are similar. Here is an example of the three lines:
line1:
line2 =... (2 Replies)
Hi all:
I have a directory where all of the subdirectories are named by the convention "images_#1:#2_Date." My goal is to get an array for each subdirectory that has the structure (#1,#2, int). I am able to use awk to print each subdirectory's values, but cannot figure out how to get them into an... (6 Replies)
I am attempting to insert multiple lines of text into a specific place in a text file based on the lines above or below it.
For example, Here is a portion of a zone file.
IN NS ns1.domain.tld.
IN NS ns2.domain.tld.
IN ... (2 Replies)
I have several files on a folder something like this:
If the file starts with 1a, I would like to add the following at the very beggining of the file
If the file starts with 1b then I should add the following
For files starting with 6
So on and so forth. Thus, at the end each file will... (18 Replies)
Hello,
I have some files in a directory like:
01_07_2010_aa.txt
01_07_2010_bb.txt
01_07_2010_cc.txt
01_07_2010_dd.txt
01_07_2010_ee.txt
01_07_2010_ff.txt
I want to change their names to :
3nm_aa.txt
3nm_bb.txt
3nm_cc.txt
3nm_dd.txt
3nm_ee.txt
3nm_ff.txt (8 Replies)
Hi is it possible to change multiple files (~10k) names with out disturbing the data in it. ?
input
Hynda|cgr10(+):100027702-1000312480|.txt
Hynda|cgr10(+):100027702-1000312483|.txt
Hynda|cgr10(+):100027702-1000312484|.txt
Hynda|cgr10(+):100027702-1000312482|.txt
output... (4 Replies)
What am I missing?
find: 0652-009 There is a missing conjunction
find: 0652-009 There is a missing conjunction
find: 0652-009 There is a missing conjunction
find: 0652-009 There is a missing conjunction
find: 0652-009 There is a missing conjunction
find: 0652-009 There is a missing... (3 Replies)
list of legal and illegal bash variable names and wht each is either illegal and ligal?
4. Seneca college, Toronto , Canada, peter wheeler, tech 154: (5 Replies)
Discussion started by: renegade755
5 Replies
LEARN ABOUT ULTRIX
upscli_list_start
UPSCLI_LIST_START(3) NUT Manual UPSCLI_LIST_START(3)NAME
upscli_list_start - begin multi-item retrieval from a UPS
SYNOPSIS
#include <upsclient.h>
int upscli_list_start(UPSCONN_t *ups, int numq, const char **query)
DESCRIPTION
The upscli_list_start() function takes the pointer ups to a UPSCONN_t state structure, and the pointer query to an array of numq query
elements. It builds a properly-formatted request from those elements and transmits it to upsd(8).
Upon success, the caller must call upscli_list_next(3) to retrieve the elements of the list. Failure to retrieve the list will most likely
result in the client getting out of sync with the server due to buffered data.
USES
This function implements the "LIST" command in the protocol. As a result, you can use it to request many different things from the server.
Some examples are:
o LIST UPS
o LIST VAR <ups>
o LIST RW <ups>
o LIST CMD <ups>
o LIST ENUM <ups> <var>
o LIST RANGE <ups> <var>
QUERY FORMATTING
To see the list of variables on a UPS called su700, the protocol command would be LIST VAR su700. To start that list with this function,
you would populate query and numq as follows:
int numq;
const char *query[2];
query[0] = "VAR";
query[1] = "su700";
numq = 2;
All escaping of special characters and quoting of elements with spaces are handled for you inside this function.
ERROR CHECKING
This function checks the response from upsd(8) against your query. If it is not starting a list, or is starting the wrong type of list, it
will return an error code.
When this happens, upscli_upserror(3) will return UPSCLI_ERR_PROTOCOL.
RETURN VALUE
The upscli_list_start() function returns 0 on success, or -1 if an error occurs.
SEE ALSO upscli_fd(3), upscli_get(3), upscli_readline(3), upscli_sendline(3), upscli_ssl(3), upscli_strerror(3), upscli_upserror(3)Network UPS Tools 05/31/2012 UPSCLI_LIST_START(3)