Today (Saturday) We will make some minor tuning adjustments to MySQL.

You may experience 2 up to 10 seconds "glitch time" when we restart MySQL. We expect to make these adjustments around 1AM Eastern Daylight Saving Time (EDT) US.


Unknown command '\;'


Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
Unknown command '\;'

Hello,
I am running ubuntu 16.04 .
Below script gives: "unknown command '\;'

Code:
counter=105
while read COL1 COL2 COL3
do
let counter++
url="http://localhost/test/$COL1.$COL2.$COL3";
mysql -uroot -D mydatabase -pmypasswd -e "SELECT video_id FROM video_series_files WHERE id IN \
(SELECT video_id FROM video_series_files WHERE url like '%$COL1%.mkv')" > video_id
sed -i '/video_id/d' video_id;
sed -i '/--/d' video_id;
while read -r line
do
mysql -uroot -D mydatabase -pmypasswd -e "INSERT INTO video_series_files (id, video_id, file_type, \
protocol, url, languages, quality, accessed ,status ) VALUES ('.$counter.', \
'$line', 'sub', 'custom', '$url', 'a:1:{i:0;s:2:\'$COL2'\;}',  '', '1', '1' )";
done<video_id
done<2

2
Code:
Mr.Smith.Goes.to.Washington     en      srt
Mr.Smith.Goes.to.Washington     fr      srt
Mr.Smith.Goes.to.Washington     el      srt

I have checked the database and I confirm that id 103 and following lines are already empty.
Could you please let me know why I receive this error?


Thank you
Boris

Last edited by baris35; 05-07-2019 at 08:53 PM..
# 2  
Code:
done<2

I do not see where 2 is open for read. 2 is normally stderr. This is abnormal, IMO. It can break things behind the scenes.
This User Gave Thanks to jim mcnamara For This Post:
# 3  
Quote:
Originally Posted by baris35
...

Could you please let me know why I receive this error?

Could you please let us know where you receive this error?


Just shooting in the dark, I'd guess it's here: \'$COL2'\;} when the semicolon is escaped in lieu of the second single quote. And, as jim mcnamara already pointed out, the redirection should be reconsidered.
This User Gave Thanks to RudiC For This Post:
# 4  
Hello,
Thank you for your answers. (To make it easily readable, long parts of the codes are hidden now)
Upon your recommendation, I tested shown below correlations:
Code:
while read COL1 COL2 COL3 && while read -r line <&3; do
..
..
..
'$line', 'sub', 'custom', '$url', 'a:1:{i:0;s:2:\"$COL2"\;}',  '', '1', '1' )";
done<video_id 3<2

Also tried below one:

Code:
while read COL1 COL2 COL3 && while read -r line <&3; do
..
..
..
'$line', 'sub', 'custom', "$url', 'a:1:{i:0;s:2:\"$COL2"\;}",  '', '1', '1' )";
done<video_id 3<2

And the last one:

Code:
while read COL1 COL2 COL3 && while read -r line <&3; do
..
..
..
'$line', 'sub', 'custom', "$url', 'a:1:{i:0;s:2:\"$COL2\";}",  '', '1', '1' )";
done<video_id 3<2

Still investigating. I doubt second loop is not in correct position as input of second loop is created by first loop.
PS: when bold part is written into sql, output in sql database should be shown like:
| a:1:{i:0;s:2:"fr";} |

Kind regards
Boris

Last edited by baris35; 05-08-2019 at 07:50 AM..
# 5  
That code snippet seems a bit overcomplicated with its double loop and sed operating on intermediate files. Do you know about the (oracle) set head off equivalent in mysql: -N and -s? Et voila, two sed invocations gone. You then could pipe the first select(id numbers) into the second loop.

What's the result of the first select per every single loop iteration given we have three times the same film title in file 2 ?

One more question: is 2 the name of the input file, and thus NOT a file descriptor?

Last edited by RudiC; 05-08-2019 at 08:15 AM..
# 6  
Hello Rudic,
* I do not know the equivalent of set head off
* As output of first loop looks like below, I do not know how to pipe it to second mysql process.
Code:
video_id
3

That's why, first I remove first line, then read it again with second loop.

* 2 is not a file descriptor. It includes file basename , language and file extension in tab separated format.

filename: 2
Code:
Mr.Smith.Goes.to.Washington     en      srt
Mr.Smith.Goes.to.Washington     fr      srt
Mr.Smith.Goes.to.Washington     el      srt

*Output of first mysql query:
Quote:
What's the result of the first select per every single loop iteration given we have three times the same film title in file 2 ?
output is video_id file:
Code:
video_id
3

Last status:
Code:
while read COL1 COL2 COL3 && while read -r line <&3; do
..
..
..
'$line', 'sub', 'custom', '$url', 'a:1:{i:0;s:2:\"$COL2"\;}',  '', '1', '1' )";
done<2 3<video_id

Kind regards
Boris

Last edited by baris35; 05-08-2019 at 08:44 AM..
# 7  
How about preparing an sql- file outside mysql using e.g. awk and then executing this with a single mysql invocation? Like create barisprep:
Code:
{print  "INSERT INTO video_series_files (id, video_id, file_type, protocol, url, languages, quality, accessed ,status )" \
        " SELECT '." ++CNT ".', video_id, 'sub', 'custom', 'http://localhost/test/" $1 "." $2 "." $3 "', 'a:1:{i:0;s:2:'" $2 \
        "';}', '', '1', '1' FROM video_series_files WHERE url like '%" $1 "%.mkv';"}

, running it with
Code:
awk -vCNT=$counter -fbarisprep 2 > barisprep.sql

resulting in

Code:
INSERT INTO video_series_files (id, video_id, file_type, protocol, url, languages, quality, accessed ,status ) SELECT '.106.', video_id, 'sub', 'custom', 'http://localhost/test/Mr.Smith.Goes.to.Washington.en.srt', 'a:1:{i:0;s:2:'en';}', '', '1', '1' FROM video_series_files WHERE url like '%Mr.Smith.Goes.to.Washington%.mkv';
INSERT INTO video_series_files (id, video_id, file_type, protocol, url, languages, quality, accessed ,status ) SELECT '.107.', video_id, 'sub', 'custom', 'http://localhost/test/Mr.Smith.Goes.to.Washington.fr.srt', 'a:1:{i:0;s:2:'fr';}', '', '1', '1' FROM video_series_files WHERE url like '%Mr.Smith.Goes.to.Washington%.mkv';
INSERT INTO video_series_files (id, video_id, file_type, protocol, url, languages, quality, accessed ,status ) SELECT '.108.', video_id, 'sub', 'custom', 'http://localhost/test/Mr.Smith.Goes.to.Washington.el.srt', 'a:1:{i:0;s:2:'el';}', '', '1', '1' FROM video_series_files WHERE url like '%Mr.Smith.Goes.to.Washington%.mkv';

and then source it like
Code:
mysql -uroot -D mydatabase -pmypasswd -sN  < barisprep.sql


EDIT: or even
Code:
mysql -uroot -D mydatabase -pmypasswd -sN  < $(awk -vCNT=$counter -fbarisprep 2)


Last edited by RudiC; 05-08-2019 at 09:30 AM..
These 2 Users Gave Thanks to RudiC For This Post:
Login or Register to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
There's a unknown command on line 1 and i don't know whats causing it.
thatguy565
My OS is Linux GL version 2.4.26. I am trying to make a shell script that outputs a chart displaying info of who is online, boot time, and the real time, I have manage to get it to work, but I still get the error "./user/script: line 1: : command not found." I do in fact have access to root, if...... Shell Programming and Scripting
2
Shell Programming and Scripting
'SP2-0734: unknown command beginning "elect' Error
aimy
My environment is HP-UX... NIS CEL | uname -a HP-UX s53kj113 B.11.11 U 9000/800 1510201964 unlimited-user license I ran this command directly from the server's sqllplus. Logically, it should have work. But in my case, it always escaped the 1st character of the next command after the...... HP-UX
3
HP-UX
Sed unknown command
BlueberryPickle
Hi everyone, I am trying to replace a string that contains a space using sed. A typical input file is: CATEGORY=1 1:1.0 CATEGORY=2 13:1.0 CATEGORY=3 1:99.0 CATEGORY=8 14:1.0 CATEGORY=11 1:1.0 I want to use a string (as it can change) to make replacements using ...... Shell Programming and Scripting
3
Shell Programming and Scripting
PING - Unknown host 127.0.0.1, Unknown host localhost - Solaris 10
Przemek
Hello, I have a problem - I created a chrooted jail for one user. When I'm logged in as root, everything work fine, but when I'm logged in as a chrooted user - I have many problems: 1. When I execute the command ping, I get weird results: bash-3.00$ usr/sbin/ping localhost ...... Solaris
4
Solaris
<drive type unknown> when format command run
prvnrk
Hi, we are running solaris 9 on V280R. Due to power failure, one disk's label and lost its details like drive type etc. Disk details: <SUN72G cyl 14087 alt 2 hd 24 sec 424> single partition on slice 6 with UFS. The below i see when i run "format" command ..... ..... 4....... Solaris
1
Solaris

Featured Tech Videos