Good evening all I have what might be a simple problem to solve but I do not know how to solve it myself. I am writing a bash script and my code looks something like this:
Basically what I want to do is look through the current directory for all files that end in a '.mp3' extension, which also have spaces in them, eg. "Tom Petty - Running Down a Dream.mp3", then run a loop that prints such files one line after another. However I have been running into a problem where $f only prints one word at a time going from space to space, I don't want an output that looks like:
Tom
Petty
-
Running
Down
a
Dream.mp3
I want an output that looks like:
Tom Petty - Running Down a Dream.mp3
Next song
next song
...
I have seen this done before - and maybe there is a better way too.
I want to be abe to use a for loop (or other better method) to loop through the database instance names that are part of the script - not an external file where a read might be ok.
Here is what I have and I know won't work -... (5 Replies)
Can anyone tell me what's wrong with my code here? I'm experiencing weird behavior...
I am using 'j' to go down a list filenames saved in a .txt file and prompting the user whether or not she would like to delete each one. This works all well and fine the first run through, but then instead of... (2 Replies)
i don't get what's wrong here. i'm writing a shell script that takes 1 argument (a number) from the command-line, but it's throwing an error:
Syntax error: Bad for loop variable
doesn't make much sense
for (( i = 1; i = ${1}; i++ )) # error points to this line everytime
do
echo... (9 Replies)
When I run the following command in the shell it works fine. It prints a city name and then a path for a file.
~$ for i in `awk -F':' '{print $0}' /home/knoppix/Desktop/data/subs | grep -m 1 $ city | sed "s/:/ /"`
>do
>echo $i
>done
Now, when I place it in this shell script (sh) it prints... (6 Replies)
Hi again :)
I still need your help now...
#!/bin/bash
SIZE=`ls -s text.txt`
while
do
done
My problem is that the line "while ..." still print the same value after the first loop.
In one instruction change the size of text.txt
I've run my bash script in debug mode, and the... (6 Replies)
HI there,
I am trying to count manually what this code does but I am stuck and I don't learly see the result. The code works and it compiles and runs but I just don't follow the value of var.
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
#include<wait.h>... (2 Replies)
#!/bin/bash
function check_num_args()
{
if ; then
echo "Please provide a file name"
else
treat_as_file $*
fi
}
function treat_as_file()
{
numFiles=$#
for((i=1;i<=$numFiles;i++));do
echo $i
... (3 Replies)
I have the text file where each line has the format:
chr10 101418889 101418904 0.816327
Right now the interval between column 2 and 3 is 15. I only want the two consecutive positions starting at position 1, write it to a file, then move up one position write to file etc. So that:
... (1 Reply)
Discussion started by: jfern
1 Replies
LEARN ABOUT DEBIAN
mp3::tag::id3v1
MP3::Tag::ID3v1(3pm) User Contributed Perl Documentation MP3::Tag::ID3v1(3pm)NAME
MP3::Tag::ID3v1 - Module for reading / writing ID3v1 tags of MP3 audio files
SYNOPSIS
MP3::Tag::ID3v1 is designed to be called from the MP3::Tag module.
use MP3::Tag;
$mp3 = MP3::Tag->new($filename);
# read an existing tag
$mp3->get_tags();
$id3v1 = $mp3->{ID3v1} if exists $mp3->{ID3v1};
# or create a new tag
$id3v1 = $mp3->new_tag("ID3v1");
See MP3::Tag for information on the above used functions.
* Reading the tag
print " Title: " .$id3v1->title . "
";
print " Artist: " .$id3v1->artist . "
";
print " Album: " .$id3v1->album . "
";
print "Comment: " .$id3v1->comment . "
";
print " Year: " .$id3v1->year . "
";
print " Genre: " .$id3v1->genre . "
";
print " Track: " .$id3v1->track . "
";
# or at once
@tagdata = $mp3->all();
foreach $tag (@tagdata) {
print $tag;
}
* Changing / Writing the tag
$id3v1->comment("This is only a Test Tag");
$id3v1->title("testing");
$id3v1->artist("Artest");
$id3v1->album("Test it");
$id3v1->year("1965");
$id3v1->track("5");
$id3v1->genre("Blues");
# or at once
$id3v1->all("song title","artist","album","1900","comment",10,"Ska");
$id3v1->write_tag();
* Removing the tag from the file
$id3v1->remove_tag();
AUTHOR
Thomas Geffert, thg@users.sourceforge.net
DESCRIPTION
title(), artist(), album(), year(), comment(), track(), genre()
$artist = $id3v1->artist;
$artist = $id3v1->artist($artist);
$album = $id3v1->album;
$album = $id3v1->album($album);
$year = $id3v1->year;
$year = $id3v1->year($year);
$comment = $id3v1->comment;
$comment = $id3v1->comment($comment);
$track = $id3v1->track;
$track = $id3v1->track($track);
$genre = $id3v1->genre;
$genre = $id3v1->genre($genre);
Use these functions to retrieve the date of these fields, or to set the data.
$genre can be a string with the name of the genre, or a number describing the genre.
all()
@tagdata = $id3v1->all;
@tagdata = $id3v1->all($title, $artist, $album, $year, $comment, $track, $genre);
Returns all information of the tag in a list. You can use this sub also to set the data of the complete tag.
The order of the data is always title, artist, album, year, comment, track, and genre. genre has to be a string with the name of the
genre, or a number identifying the genre.
fits_tag()
warn "data truncated" unless $id3v1->fits_tag($hash);
Check whether the info in ID3v1 tag fits into the format of the file.
as_bin()
$str = $id3v1->as_bin();
Returns the ID3v1 tag as a string.
write_tag()
$id3v1->write_tag();
[old name: writeTag() . The old name is still available, but you should use the new name]
Writes the ID3v1 tag to the file.
remove_tag()
$id3v1->remove_tag();
Removes the ID3v1 tag from the file. Returns negative on failure, FALSE if no tag was found.
(Caveat: only one tag is removed; some - broken - files may have many chain-loaded one after another; you may need to call remove_tag()
in a loop to handle such beasts.)
[old name: removeTag() . The old name is still available, but you should use the new name]
genres()
@allgenres = $id3v1->genres;
$genreName = $id3v1->genres($genreID);
$genreID = $id3v1->genres($genreName);
Returns a list of all genres, or the according name or id to a given id or name.
new()
$id3v1 = MP3::Tag::ID3v1->new($mp3fileobj[, $create]);
Generally called from MP3::Tag, because a $mp3fileobj is needed. If $create is true, a new tag is created. Otherwise undef is
returned, if now ID3v1 tag is found in the $mp3obj.
Please use
$mp3 = MP3::Tag->new($filename);
$id3v1 = $mp3->new_tag("ID3v1"); # Empty new tag
or
$mp3 = MP3::Tag->new($filename);
$mp3->get_tags();
$id3v1 = $mp3->{ID3v1}; # Existing tag (if present)
instead of using this function directly
SEE ALSO
MP3::Tag, MP3::Tag::ID3v2
ID3v1 standard - http://www.id3.org
COPYRIGHT
Copyright (c) 2000-2004 Thomas Geffert. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License, distributed with Perl.
perl v5.14.2 2009-11-28 MP3::Tag::ID3v1(3pm)