Sponsored Content
Top Forums Shell Programming and Scripting ksh String Manipulation - removing variables from within a variable Post 303029743 by wisecracker on Thursday 31st of January 2019 01:30:36 PM
Old 01-31-2019
Simple form using bash without utilities.
Longhand OSX 10.14.1, default bash terminal.
Code:
Last login: Thu Jan 31 18:23:42 on ttys000
AMIGA:amiga~> NAMES=( John Paul George Ringo )
AMIGA:amiga~> EXCLUDE_NAME='Ringo'
AMIGA:amiga~> STRING=""
AMIGA:amiga~> for (( N=0; N<${#NAMES[$@]}; N++ ));do if [ "${NAMES[$N]}" != "${EXCLUDE_NAME}" ]; then STRING="${STRING} ${NAMES[$N]}"; fi; done
AMIGA:amiga~> echo ${STRING}
John Paul George
AMIGA:amiga~> _

Have fun...
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

extract from string variable into new variables

I have a variable which consists of a string like this: 001 aaabc 44 a bbb12 How do I extract each substring, delimited by the spaces, into new variables - one for each substring? eg var1 will be 001, var2 will be aaabc, var3 will be 44, var4 will be a, etc? I've come up with this:... (2 Replies)
Discussion started by: Sniper Pixie
2 Replies

2. Shell Programming and Scripting

KSH split string into variables

Hello, I am an intermediate scripter. I can usually find and adapt what I need by searching through previous postings, but I'm stumped. I have a string with the format "{Name1 Release1 Type1 Parent1} {Name2 Release2 Type2 Parent2}". It is being passed as an argument into a ksh script. I need to... (5 Replies)
Discussion started by: drd_2b
5 Replies

3. UNIX for Dummies Questions & Answers

String manipulation using ksh

I have a UNIX shell where: LEVEL=dev SITE=here and WHEREIAM=/tmp/$SITE/location/$LEVEL I want to echo $WHEREIAM in such a way that I get it back with all the environment variables resolved (/tmp/here/location/dev). This command will be used in a shell script. (5 Replies)
Discussion started by: zambo
5 Replies

4. Shell Programming and Scripting

string manipulation in ksh

Hi all, I'm trying to extract the name of a script that is being run with a full path. i.e. if the script name is /some/where/path/script_name.ksh I'd like to extract only: script_name i know that it is possible to do so in two phases: echo "${0##*/}" will give me script_name.ksh and... (4 Replies)
Discussion started by: iceman
4 Replies

5. Shell Programming and Scripting

Bash string variable manipulation

In a bash script I've set a variable that is the directory name of where an executable lives. the_dir=`dirname $which myscript` which equates to something like "/path/to/dir/bin" I need to cut that down to remove the "bin" so I now have "/path/to/dir/". This sounds easy but as a... (2 Replies)
Discussion started by: Witty
2 Replies

6. Shell Programming and Scripting

Bash:How to split one string variable in two variables?

Hello, I have a paramter $param consisting just of two literals and want to split it into two parameters, so I can combine it to a new parameter <char1><string><char2>, but the following code didn't work: tmp_PARAM_1=cut -c1 $PARAM tmp_PARAM_2=cut -c2 $PARAM... (2 Replies)
Discussion started by: ABE2202
2 Replies

7. Shell Programming and Scripting

Ksh in Linux Removing: "\0" From String

Hi All, I am facing a problem and I am not able to solve it. I have already searched google, but nothing (maybe I am not using the correct key words). As a database query result, I have a file like below: fmv:/home/fmv/tmp>cat TestBackRef.txt /^TEST\(\{4\}\)X\{12\}Y\.txt$/\0#\1/#Test... (2 Replies)
Discussion started by: felipe.vinturin
2 Replies

8. Shell Programming and Scripting

String manipulation using ksh script

Hi, I need to convert string "(joe.smith" into "joe_smith" i.e. I need to remove the leading opening brace '(' and replace the dot '.' with an under score '_' can anyone suggest a one liner ksh script or unix command for this please (3 Replies)
Discussion started by: sdj
3 Replies

9. Shell Programming and Scripting

How to convert string(variable) into date( epoch) in ksh on HPUX machine?

Hi all, I have used a bash script which ultimately converts a string into date using date --date option: DATE=$DATE" "$TIME" "`date +%Y` //concatenating 2 strings TMRW_DATE=`date --date="$DATE" +"%s"` //applying date command on string and getting the unixtime Please use code tags... (7 Replies)
Discussion started by: Rashu123
7 Replies

10. Shell Programming and Scripting

Variable string manipulation

Hi, I have a variable with grep output like this: WORDS=$(grep -r -c -i -E "palindrom" /"$DIRECTORY"/) so "echo "$WORDS"" could be: //directory/file1.txt:0 //directory/file2.txt:0 //directory/file3.txt:3 //directory/file4.txt:1 //directory/file5.txt:0 I need to "sed" my variable... (3 Replies)
Discussion started by: Hornys
3 Replies
IOCTL(9)						   BSD Kernel Developer's Manual						  IOCTL(9)

NAME
ioctl -- how to implement a new ioctl call to access device drivers SYNOPSIS
#include <sys/ioctl.h> #include <sys/ioccom.h> int ioctl(int, unsigned long, ...); DESCRIPTION
ioctl are internally defined as #define FOOIOCTL fun(t,n,pt) where the different variables and functions are: FOOIOCTL the name which will later be given in the ioctl(2) system call as second argument, e.g., ioctl(s, FOOIOCTL, ...). fun() a macro which can be one of _IO the call is a simple message to the kernel by itself. It does not copy anything into the kernel, nor does it want anything back. _IOR the call only reads parameters from the kernel and does not pass any to it _IOW the call only writes parameters to the kernel, but does not want anything back _IOWR the call writes data to the kernel and wants information back. t This integer describes to which subsystem the ioctl applies. t can be one of '1' pulse-per-second interface '4' isdn(4) 'a' ISO networking 'A' ac devices (hp300) 'A' Advanced Power Management (hpcmips, i386, sparc), see apm(4) 'A' ADB devices (mac68k, macppc) 'A' audio(4) 'A' isdntel(4) 'b' tb(4) 'b' Bluetooth HCI sockets, see bluetooth(4) 'b' Bluetooth Hub Control, see bthub(4) 'b' Bluetooth SCO audio driver, see btsco(4) 'B' bell device (x68k) 'B' bpf(4) 'c' coda 'c' cd(4) 'c' ch(4) 'C' clock devices (amiga, atari, hp300, x68k) 'C' isdnctl(4) 'd' the disk subsystem 'E' envsys(4) 'f' files 'F' Sun-compatible framebuffers 'F' ccd(4) and vnd(4) 'g' qdss framebuffers 'G' grf devices (amiga, atari, hp300, mac68k, x68k) 'h' HIL devices (hp300) 'H' HIL devices (hp300) 'H' HPc framebuffers 'i' a (pseudo) interface 'I' ite(4) (mac68k) 'J' ISA joystick interface 'k' Sun-compatible (and other) keyboards 'l' leo devices (atari) 'm' mtio(4) 'M' mouse devices (atari) 'M' mlx(4) 'n' virtual console device (arm32) 'n' SMB networking 'O' OpenPROM and OpenFirmware 'p' power control (x68k) 'P' parallel port (amiga, x68k) 'P' profiling (arm32) 'P' printer/plotter interface (hp300) 'P' pci(4) 'P' compat/ossaudio and soundcard.h 'P' magma(4) bpp (sparc) 'q' altq(9) 'q' pmax graphics devices 'Q' altq(9) 'Q' raw SCSI commands 'r' the routing subsystem 'r' md(4) 'R' isdnbchan(4) 'R' rnd(4) 's' the socket layer 's' satlink devices 'S' SCSI disks (arc, hp300, pmax) 'S' watchdog devices (sh3) 'S' ISA speaker devices 'S' stic devices 'S' scanners 't' the tty layer 'u' user defined ??? 'U' scsibus (see scsi(4)) 'v' Sun-compatible ``firm events'' 'V' view device (amiga, atari) 'V' sram device (x68k) 'w' watchdog devices 'W' wt devices 'W' wscons devices 'x' bt8xx devices 'Z' ite devices (amiga, atari, x68k) 'Z' passthrough ioctls n This numbers the ioctl within the group. There may be only one n for a given t. This is an unsigned 8 bit number. pt This specifies the type of the passed parameter. This one gets internally transformed to the size of the parameter, so for exam- ple, if you want to pass a structure, then you have to specify that structure and not a pointer to it or sizeof(struct foo) In order for the new ioctl to be known to the system it is installed in either <sys/ioctl.h> or one of the files that are reached from <sys/ioctl.h>. RETURN VALUES
All ioctl() routines should return either 0 or a defined error code. The use of magic numbers such as -1, to indicate that a given ioctl code was not handled is strongly discouraged. The value -1 coincides with the historic value for ERESTART which was shown to produce user space code that never returned from a call to ioctl(2). For ioctl codes that are not handled by a given routine, the pseudo error value EPASSTHROUGH is provided. EPASSTHROUGH indicates that no error occurred during processing (it did not fail), but neither was anything processed (it did not succeed). This supersedes the use of either ENOTTY (which is an explicit failure) or -1 (which has no contextual meaning) as a return value. ENOTTY will get passed directly back to user space and bypass any further processing by other ioctl layers. Only code that wishes to suppress possible further processing of an ioctl code (e.g., the tty line discipline code) should return ENOTTY. All other code should return EPASSTHROUGH, even if it knows that no other layers will be called upon. If the value EPASSTHROUGH is returned to sys_ioctl(), then it will there be changed to ENOTTY to be returned to user space, thereby providing the proper error notification to the application. EXAMPLES
#define FOOIOCTL _IOWR('i', 23, int) int a = 3; error = ioctl(s, FOOICTL, &a); Within the ioctl()-routine of the driver, it can be then accessed like driver_ioctl(..., u_long cmd, void *data) { ... switch (cmd) { case FOOIOCTL: int *a = (int *)data; printf(" Value passed: %d ", *a); break; } } NOTES
Note that if you for example try to read information from an ethernet driver where the name of the card is included in the third argument (e.g., ioctl(s, READFROMETH, struct ifreq *)), then you have to use the _IOWR() form not the _IOR(), as passing the name of the card to the kernel already consists of writing data. SEE ALSO
ioctl(2) BSD
December 11, 2010 BSD
All times are GMT -4. The time now is 04:21 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy