I think, that simplier is to write it with awk...
But i have another problem with it... I need to fix arguments incoming to the script. The argument can't be empty, non exist, it must be text file... My suggestion is:
Code:
function print_help ()
{
echo "[-h]: print help"
}
if [ $1 = -h ]; then
print_help
exit 0
fi
if [ ! -e $@ ]; then
echo "Error: $@ doesn't exist" >/dev/stderr
exit 1
fi
if [ ! -s $@ ]; then
echo "Error: $@ is empty" >/dev/stderr
exit 1
fi
if [ -d $@ ]; then
echo "Error: $@ is directory" >/dev/stderr
exit 1
fi
if [ -f $@ ]; then
find $@ -type -f -exec file {} \; | grep "text"
echo "Error: $@ not text file" >/dev/stderr
exit 1
fi
But i have awk code after that and no argument get to him... How should i fix it?
---------- Post updated at 01:09 PM ---------- Previous update was at 01:07 PM ----------
Second throught is :
Code:
while [ 0 -lt $# ]; do
if [ $1 = -h ]; then
print_help
exit 0
fi
if [ ! -e $@ ]; then
echo "Error: $@ doesn't exist" >/dev/stderr
exit 1
fi
if [ ! -s $@ ]; then
echo "Error: $@ empty" >/dev/stderr
exit 1
fi
if [ -d $@ ]; then
echo "Error: $@ is directory" >/dev/stderr
exit 1
fi
shift
done
But there is same problem... No argument left for awk and therefore awko won't work
---------- Post updated at 03:33 PM ---------- Previous update was at 01:09 PM ----------
There is only one = in code...
Code:
if [ $1 = -h ]; then
Should i use -eq instead? and what above that testing of the files incoming to my script, can you help me with that?
---------- Post updated at 04:33 PM ---------- Previous update was at 03:33 PM ----------
Dear All,
To find the length of the longest line from a file i have used wc -L which is giving the proper output...
But the problem is AIX os does not support wc -L command.
so is there any other way 2 to find out the length of the longest line using awk or sed ?
Regards,
Pankaj (1 Reply)
Hi Everyone,
I am trying to write a shell script that can find the longest phrase that appears at least twice in an online news article. The HTML has been parsed through an HTML parser, converted to XML and the article content extracted. I have put this article content in a text file to work... (24 Replies)
Good Morning/Afternoon All,
I am using the nawk utility in korn shell to find the longest field and display that result.
My Data is as follows:
The cat ran
The elephant ran
Milly ran too
We all ran
I have tried nawk '{ if (length($1) > len) len=length($1); print $1}' filename
The... (5 Replies)
Hello all,
I need to find the longest string in a select field and print that field.
I have tried a few different methods and I always end up one step from where I need to be.
Methods thus far:
nawk '{if (length($1) > long) long=length($1); if(length($1)==long) print $1}'
The above... (6 Replies)
I am writing a bash script to find out all the files in a directory which are empty. I am running into multiple issues. I will really appreciate if someone can please help me.
#!/bin/bash
DATE=$(date +%m%d%y)
TIME=$(date +%H%M)
DIR="/home/statsetl/input/civil/test"
... (1 Reply)
Running below line gives 3957 as length of longest line in file 20121119_SRMNotes_init.dat
awk ' { if ( length > 3950 ) { x = length } }END{ print x }' 20121119_SRMNotes_init.dat
While wc -L 20121119_SRMNotes_init.dat gives output as 4329. Why is there a difference between these two commands.... (2 Replies)
I want to find common line in two files and replace the next line of first file with the next line of second file. (sed,awk,perl,bash any solution is welcomed ) Case Ignored. Multiple Occurrence of same line.
File 1:
hgacdavd
sndm,ACNMSDC
msgid "Rome"
msgstr ""
kgcksdcgfkdsb... (4 Replies)
Hi ,
i have a file with data as below.This is same file. But actual file contains to many rows.
i want to search for a string "Field 039 00" and delete that line and previous 3 lines in that file.. Can some body suggested me how can i do using either sed or awk command ?
Field 004... (7 Replies)
I am trying to make my script as simple as a possible but, I am not sure if the way I am approaching is necessarily the most efficient or effective it can be. What I am mainly trying to fix is a for loop to remove a string from the specified files and within this loop I am trying to copy the lines... (2 Replies)
Hello,
I have some code that works more or less. This is called by a make file to adjust some hard-coded definitions in the src code. The script generated some values by looking at some of the src files and then writes those values to specific locations in other files. The awk code is used to... (3 Replies)
Discussion started by: LMHmedchem
3 Replies
LEARN ABOUT DEBIAN
cmdtest
CMDTEST(1) General Commands Manual CMDTEST(1)NAME
cmdtest - blackbox testing of Unix command line tools
SYNOPSIS
cmdtest [-c=COMMAND] [--command=COMMAND] [--config=FILE] [--dump-config] [--dump-memory-profile=METHOD] [--dump-setting-names]
[--generate-manpage=TEMPLATE] [-h] [--help] [-k] [--keep] [--list-config-files] [--log=FILE] [--log-keep=N] [--log-level=LEVEL]
[--log-max=SIZE] [--no-default-configs] [--output=FILE] [-t=TEST] [--test=TEST] [--timings] [--version] [FILE]...
DESCRIPTION
cmdtest black box tests Unix command line tools. Given some test scripts, their inputs, and expected outputs, it verifies that the command
line produces the expected output. If not, it reports problems, and shows the differences.
Each test case foo consists of the following files:
foo.script
a script to run the test (this is required)
foo.stdin
the file fed to standard input
foo.stdout
the expected output to the standard output
foo.stderr
the expected output to the standard error
foo.exit
the expected exit code
foo.setup
a shell script to run before the test
foo.teardown
a shell script to run after test
Usually, a single test is not enough. All tests are put into the same directory, and they may share some setup and teardown code:
setup-once
a shell script to run once, before any tests
setup a shell script to run before each test
teardown
a shell script to run after each test
teardown-once
a shell script to run once, after all tests
cmdtest is given the name of the directory with all the tests, or several such directories, and it does the following:
o execute setup-once
o for each test case (unique prefix foo):
-- execute setup
-- execute foo.setup
-- execute the command, by running foo.script, and redirecting standard input to come from foo.stdin, and capturing standard output
and error and exit codes
-- execute foo.teardown
-- execute teardown
-- report result of test: does exit code match foo.exit, standard output match foo.stdout, and standard error match foo.stderr?
o execute teardown-once
Except for foo.script, all of these files are optional. If a setup or teardown script is missing, it is simply not executed. If one of
the standard input, output, or error files is missing, it is treated as if it were empty. If the exit code file is missing, it is treated
as if it specified an exit code of zero.
The shell scripts may use the following environment variables:
DATADIR
a temporary directory where files may be created by the test
TESTNAME
name of the current test (will be empty for setup-once and teardown-once)
SRCDIR directory from which cmdtest was launched
OPTIONS -c, --command=COMMAND
ignored for backwards compatibility
--config=FILE
add FILE to config files
--dump-config
write out the entire current configuration
--dump-memory-profile=METHOD
make memory profiling dumps using METHOD, which is one of: none, simple, meliae, or heapy (default: simple)
--dump-setting-names
write out all names of settings and quit
--generate-manpage=TEMPLATE
fill in manual page TEMPLATE
-h, --help
show this help message and exit
-k, --keep
keep temporary data on failure
--list-config-files
list all possible config files
--log=FILE
write log entries to FILE (default is to not write log files at all); use "syslog" to log to system log
--log-keep=N
keep last N logs (10)
--log-level=LEVEL
log at LEVEL, one of debug, info, warning, error, critical, fatal (default: debug)
--log-max=SIZE
rotate logs larger than SIZE, zero for never (default: 0)
--no-default-configs
clear list of configuration files to read
--output=FILE
write output to FILE, instead of standard output
-t, --test=TEST
run only TEST (can be given many times)
--timings
report how long each test takes
--version
show program's version number and exit
EXAMPLE
To test that the echo(1) command outputs the expected string, create a file called echo-tests/hello.script containing the following con-
tent:
#!/bin/sh
echo hello, world
Also create the file echo-tests/hello.stdout containing:
hello, world
Then you can run the tests:
$ cmdtest echo-tests
test 1/1
1/1 tests OK, 0 failures
If you change the stdout file to be something else, cmdtest will report the differences:
$ cmdtest echo-tests
FAIL: hello: stdout diff:
--- echo-tests/hello.stdout 2011-09-11 19:14:47 +0100
+++ echo-tests/hello.stdout-actual 2011-09-11 19:14:49 +0100
@@ -1 +1 @@
-something else
+hello, world
test 1/1
0/1 tests OK, 1 failures
Furthermore, the echo-tests directory will contain the actual output files, and diffs from the expected files. If one of the actual output
files is actually correct, you can actualy rename it to be the expected file. Actually, that's a very convenient way of creating the ex-
pected output files: you run the test, fixing things, until you've manually checked the actual output is correct, then you rename the file.
SEE ALSO cliapp(5).
CMDTEST(1)