Sponsored Content
Top Forums Shell Programming and Scripting Script to change first line of files in directory Post 302653619 by agama on Saturday 9th of June 2012 03:31:48 PM
Old 06-09-2012
You only need the cd command in the if statement. Your directory is a relative path (doesn't start with a slant) and that is why it's erroring (there isn't a ./xxxx directory inside of the directory which you switched to earlier in the script.

You also are wasting effort copying the file back in your script (extra i/o adds to the latency).

Code:
#!/usr/bin/bash

# mol_filename2firstline_2.sh 
### unneeded cd "$1"

if ! cd "${1:-no-such-directory}"     # also quote on the off chance that something in the path has spaces
then
   echo "abort: could not switch to '$1' or parameter was missing"
   exit 1
fi

ls | while read f              # for *   doesn't handle filenames with spaces or large numbers of files. 
do
    [ ! -f "$f" ] && continue

    printf %s\\n "$f" >"$f.new"
    if ! sed '1d' "$f" >>"$f.new"
    then
        rm "$f.new"
    else
        mv "$f.new" "$f"
    fi
done

This User Gave Thanks to agama For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How do I change ownership of a directory and all of it's files.

How do I change ownership of a directory and all of it's files without changing permissions? (1 Reply)
Discussion started by: mborin
1 Replies

2. Shell Programming and Scripting

Change Directory via a script?

I would like to have a script that would change my current working directory. However, any time I execute a 'cd' command in a script, it holds only for the life of that script -- the working directory on exit is the same as when the script was initiated. Is it possible to have the script return... (3 Replies)
Discussion started by: George Borrmann
3 Replies

3. Shell Programming and Scripting

Change of directory thru script

:confused: Hi All, This script is not working. I want to change the directory as per users selection in current shell. Looks like it is spawning sub-shell internally. I have used . changedir.sh source changedir.sh ./changedire.sh But did not work. Currently shell directory remain the... (4 Replies)
Discussion started by: shiningram
4 Replies

4. Shell Programming and Scripting

change directory using shell script

How do u change ur directory using a shell script?? (0 Replies)
Discussion started by: laxmi
0 Replies

5. Linux

Change directory in a shell script

How do u change ur directory using a shell script?? (12 Replies)
Discussion started by: laxmi
12 Replies

6. Shell Programming and Scripting

Script to change file contents line by line

Hi, I'm struggling to write a script to do the following, -will go through each line in the file -in a specific character positions, changes the value to a new value -These character positions are fixed througout the file ----------------------- e.g.: file1.sh will have the following 3... (4 Replies)
Discussion started by: vini99
4 Replies

7. Shell Programming and Scripting

directory change in shell script

Hi, I am trying to change the directory in my script, & want to check if the directory is present or not . Ex: cd /home/xyz/temp/logs if the logs directory is not present i want to show the error in script instead of shell script error. Can anybody please help me on the same Thx in... (2 Replies)
Discussion started by: vls1210
2 Replies

8. Shell Programming and Scripting

How to change a directory in shell script?

HI, I need to change the working directory by using the shell script /Export/home/user_name I have to go one step back like /Export/home Please help on this.:confused: (3 Replies)
Discussion started by: thelakbe
3 Replies

9. Shell Programming and Scripting

Apply 'awk' to all files in a directory or individual files from a command line

Hi All, I am using the awk command to replace ',' by '\t' (tabs) in a csv file. I would like to apply this to all .csv files in a directory and create .txt files with the tabs. How would I do this in a script? I have the following script called "csvtabs": awk 'BEGIN { FS... (4 Replies)
Discussion started by: ScKaSx
4 Replies

10. Shell Programming and Scripting

Change ? char from files and directory

Hello, I must change files and dirs name which contains che "?" char, I try this: rename 's/?/-/' *.* nothing, what's the problem? thanks (14 Replies)
Discussion started by: ionral
14 Replies
OSACOMPILE(1)						    BSD General Commands Manual 					     OSACOMPILE(1)

NAME
osacompile -- compile AppleScripts and other OSA language scripts SYNOPSIS
osacompile [-l language] [-e command] [-o name] [-d] [-r type:id] [-t type] [-c creator] [-x] [-s] [-u] [-a arch] [file ...] DESCRIPTION
osacompile compiles the given files, or standard input if none are listed, into a single output script. Files may be plain text or other compiled scripts. The options are as follows: -l language Override the language for any plain text files. Normally, plain text files are compiled as AppleScript. -e command Enter one line of a script. Script commands given via -e are prepended to the normal source, if any. Multiple -e options may be given to build up a multi-line script. Because most scripts use characters that are special to many shell programs (e.g., AppleScript uses single and double quote marks, ``('', ``)'', and ``*''), the command will have to be correctly quoted and escaped to get it past the shell intact. -o name Place the output in the file name. If -o is not specified, the resulting script is placed in the file ``a.scpt''. The value of -o partly determines the output file format; see below. -x Save the resulting script as execute-only. The following options are only relevant when creating a new bundled applet or droplet: -s Stay-open applet. -u Use startup screen. -a arch Create the applet or droplet for the specified target architecture arch. The allowable values are ``ppc'', ``i386'', and ``x86_64''. The default is to create a universal binary. The following options control the packaging of the output file. You should only need them for compatibility with classic Mac OS or for cus- tom file formats. -d Place the resulting script in the data fork of the output file. This is the default. -r type:id Place the resulting script in the resource fork of the output file, in the specified resource. -t type Set the output file type to type, where type is a four-character code. If this option is not specified, the creator code will not be set. -c creator Set the output file creator to creator, where creator is a four-character code. If this option is not specified, the creator code will not be set. If no options are specified, osacompile produces a Mac OS X format script file: data fork only, with no type or creator code. If the -o option is specified and the file does not already exist, osacompile uses the filename extension to determine what type of file to create. If the filename ends with ``.app'', it creates a bundled applet or droplet. If the filename ends with ``.scptd'', it creates a bun- dled compiled script. Otherwise, it creates a flat file with the script data placed according to the values of the -d and -r options. EXAMPLES
To produce a script compatible with classic Mac OS: osacompile -r scpt:128 -t osas -c ToyS example.applescript SEE ALSO
osascript(1), osalang(1) Mac OS X November 12, 2008 Mac OS X
All times are GMT -4. The time now is 07:00 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy