counter=1 while read line do if [ -z $line ] ; then continue else echo $line > $counter counter=`expr $counter + 1` fi done < your_sentences_file
On 2004.04.22 22:03, Glynn Clements wrote:
vick Julius wrote:
> I have a text file I want to split. The file contains some sentences. > between sentences I have empty 1 line. I want to split this file and put > each sentence in a separate file with names 1, 2,3 ... > do you have any idea to split it such as with awk or split?
You can't do it with split; that only handles the case where each contains a fixed number of bytes or lines.
You can do it with awk easily enough, e.g.:
#!/usr/bin/awk -f
BEGIN {
ofile = 0;
}
/^ *$/ {
close(ofile);
ofile++;
}
/[^ ]/ {
print > ofile;
}
> Here is my strategy: > > I wrote a C program in which I call bash shell script to increment a
> variable... > > In the shell I defined the variable k such as: > $export k=1 > in my bash script file,myFile, for testing, I put > echo $k > let k+=1 > (or this expression k=`expr $k + 1`) > echo $k > > when I run this script file, it gives me > 1 > 2 > > the problem is when I called form a C or C++ program, such > system("echo $k"); > //this gives 1 > system("./myFile"); > // this display > // 1 > //2 > system("echo $k"); > //here the problem, it display 1 not 2 > > I want to have the incremented value for k, i.e 2 not the original one.
Each process has its own set of environment variables. A process can modify its own environment variables, but not those of another process.
If you want to share state between processes, use a file.
-- Glynn Clements <glynn.clements@xxxxxxxxxx> - : send the line "unsubscribe linux- admin" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
- : send the line "unsubscribe linux-admin" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html