Visit Our UNIX and Linux User Community

string extraction won't work. Why?

Thread Tools Search this Thread
Operating Systems Solaris string extraction won't work. Why?
# 1  
Old 03-22-2011
string extraction won't work. Why?

set -x
echo ${testfile: (-4)}
sleep 3
echo myspawn is now ending

I am trying to extract the word flag from anf given file name. This is a demo script that I am working on to fix a production issue. We get FTP files from various place and each come with a "FLAG" file once the data file is received. I am want to trap for the "FLAG" file and do something with it before it gets processesd.

Thanks in advance

Last edited by pludi; 03-22-2011 at 04:52 AM..
# 2  
Old 03-22-2011
I'm not sure I understand completely.

Do you want the filename minus ".flag"? If so:
#! /usr/bin/ksh

printf '%s\n' "${testfile%.flag}"

# 3  
Old 03-22-2011
echo ${testfile%%.flag}

I am guessing you want to remove the .flag part from the filename.
This is called parameter substitution, you can look up the rest of the operator for this online or in your man page
# 4  
Old 03-22-2011
Actually, I am reviewing all files received and the files with the word "FLAG" as part of the filename I need to suspend for a time. Normally, the word "FLAG" comes at the end of the file name.
# 5  
Old 03-22-2011
You need to be very clear here.

What do you mean by "suspending" based on a file? What exactly do you want to do?
# 6  
Old 03-22-2011
Sorry, if my script find a file with the word "FLAG" in the name, I am going to move that file to a new location so that it does not get picked up by another deamon process until a later time.

---------- Post updated at 11:10 PM ---------- Previous update was at 11:05 PM ----------

If the initial script that I posted could work I could test for the existance for the word "FLAG" or at least test the return code $? i think.
# 7  
Old 03-22-2011
OK, how about:
#! /usr/bin/ksh

for file in *; do
	if [[ "${file:(-4)}" == "flag" ]]; then
		# Do some processing here. Maybe:
		/bin/mv "$file" /tmp/
		# Do something else. Maybe nothing.

If that more of what you were looking for?

Previous Thread | Next Thread
Test Your Knowledge in Computers #363
Difficulty: Medium
uudecode originated in Version 1 AT&T UNIX.
True or False?

10 More Discussions You Might Find Interesting

1. IP Networking

NAT via iptables - Won't work!!

Hi guys I'm running on debian on a small embedded system. I have a ppp interface that is connected to the internet (and works). My unit also has wifi access point (which works and I can connect to it). I want to allow connections to the wifi to be able to use the internet from ppp0... (1 Reply)
Discussion started by: alirezan1
1 Replies

2. UNIX for Dummies Questions & Answers

Images won't work?

Hello, Images won't work on UNIX when I try posting them on my website I'm working on. It doesn't show the image, and it's simply erroring. Help! Thanks! (5 Replies)
Discussion started by: yazan
5 Replies

3. BSD

Install cd won't work

Hi! I'm sure that somebody here installed freeBSD from a download of a virtual disc (.iso). But I made 5 downloads of 5 differents freeBSD installation (and no one has worked).Can somebody tell me where to download and how (if needed) to prepare the cd? (8 Replies)
Discussion started by: maxum
8 Replies

4. UNIX for Dummies Questions & Answers

OpenSolaris, Wireless won't work, help please!

I just installed a fork of opensolaris, and I really like it. I would hate going back to Ubuntu, But one issue, I cannot get my Dell Wireless 1450 Wireless USB Adapter working. On Ubuntu 10.4 I just installed nonfree firmware, but I guess it doesn't work that way on Solaris, any help would be... (5 Replies)
Discussion started by: Stormos
5 Replies

5. OS X (Apple)

Why won't the at command work in Mac OS X?

I typed: echo "echo hi > at_log.txt" | at now +1minute to test the at command on my terminal. I got the message: job 8 at Thu Feb 25 18:42:00 2010 I waited for a minute but nothing happened. I tried listing at_log.txt, but it said there was no such file. Am I doing something... (2 Replies)
Discussion started by: Ultrix
2 Replies

6. UNIX for Dummies Questions & Answers

sed won't work

Hi All, can anybody tell me what's wrong with this code? # SEARCH replaced by REPLACE #!/bin/bash SEARCH="95$$ 0 t" REPLACE="95$$ 1 t" for I in `ls *000.inp | cut -c-12`; do echo $I sed 's/$SEARCH/$REPLACE/' ${I}-000.inp > ${I}-100.inp done It don't replace the string... (5 Replies)
Discussion started by: f_o_555
5 Replies

7. UNIX for Dummies Questions & Answers

Ksh Why Won't IF Statement work?

I'm trying to figure out why this if statement won't work: if || $zipcount != 6 ]] then echo ${myline} echo "ZIPCODE WARNING! ${zipcode} ${zipcount}" fi if ]] then echo ${myline} echo "STATE WARNING!... (3 Replies)
Discussion started by: developncode
3 Replies

8. UNIX for Dummies Questions & Answers

Simple cron job won't work

I have a script in a directory -say users/me/test/ It looks like this: # "bkup" - copies specified files to the user's ~/Backup # directory after checking for name conflicts. a=$(date +%T) cp $1 ~/test/Backup/$1.$a It copies file.txt from current directory and timestamps the name of it of... (4 Replies)
Discussion started by: coregan
4 Replies

9. UNIX for Dummies Questions & Answers

why won't this Work?

hey programmers! 1-why won't gcc accept as an argument? i tried the recommendations on the man page of getch(),..etc. nothing worked. 2-why it won't see <iostream> && <fstream> even if i implemented the function as follow std::cout<<"..etc"<<endl; 3-after i type this code in it gives... (6 Replies)
Discussion started by: mbabeli
6 Replies

10. Solaris

(Yet) Another newbie qstn - X-server won't work!

Hi everyone, I've just bought a sun ultra 60 and am a bit of a unix newbie, so bear with me here! I've just completed a fresh install of Solaris 9 and everything was going well until the machine rebooted. When the system is coming up, it prints the followinf message on-screen: The X-server... (7 Replies)
Discussion started by: alarmcall
7 Replies

Featured Tech Videos