CactuSoul
14.09.2007, 13:40
Ժող, ես նոր-նոր եմ փորձում մի բան սովորել էս ասպարեզում, էնպես որ եթե տարրական բաների մասին հարցնեմ, վրաս ծիծաղելու փոխարեն կօգնեք, չէ՞;):
Հիմա ինձ պետք է մի script գրել, որը command line-ից ստացած file-ում գտնում է, թե ստացած երկրորդ արգումենտը որտեղ է հանդիպում առաջին անգամ ու ջնջում դրանից առաջ եղած-չեղածը: Inet-ում փորձեցի ինչ-որ բան գտնեմ դրա հետ կապված, բայց գտածս լավագույն տարբերակը ջնջում է առաջին տողն ու փնտրվող string-ը պարունակող առաջին հանդիպած տողը նարառյալ, իսկ ինձ պետք է, որ չներառի (հուսով եմ՝ ստացվեց բացատրել:oy):
Էդ գտածս ձևը սա էր.
Ունեմ test_file.txt անունով մի file, որի վրա պիտի կատարվեն փոփոխությունները: Պարունակությունը հետևյալն է.
Line to be deleted. :)
bla
bla
bla
(((
:) :) :)
*
This line and those above will be removed.
0x0000
0x7fff
This line MUST stay. :)
0x8001
0x6dd1
And this one, too.
0x7d4b
The search-string is in the middle of line: 0x132b. The rest should stay.
0x2faa
0x48c8
Bash script-ը ունի այս տեսքը.
#!/bin/bash
###########################################
#### Delete all the lines in file up to the first met "0x". ####
###########################################
sed -i '1,/'"$2"'/d' test_file.txt
Հրամանը՝
./bash_script_example_2 test_file.txt 0x
Արդյունքը.
test_file.txt-ի պարունակությունը դառնում է այսպիսին.
0x7fff
This line MUST stay. :)
0x8001
0x6dd1
And this one, too.
0x7d4b
The search-string is in the middle of line: 0x132b. The rest should stay.
0x2faa
0x48c8
Ցանկալի արդյունքը.
test_file.txt-ը պիտի պարունակեր նաև "0x0000" տողը.
0x0000
0x7fff
This line MUST stay. :)
0x8001
0x6dd1
And this one, too.
0x7d4b
The search-string is in the middle of line: 0x132b. The rest should stay.
0x2faa
0x48c8
Խնդրում եմ, օգնեք, եթե կարող եք, ու ինչքան հնարավոր է շտապ:oy…
Ավելացվել է 6 րոպե անց
Հա, ու մեկ էլ.
բա որ հանկարծ էդ փնտրվող string-ը առաջին անգամ հանդիպի որևէ տողի ոչ թե սկզբում, այլ մեջը՝ ինչ-որ տեղ: Էդ դեպքում ինձ պետք ա էդ տողի՝ դրանից առաջ եղած մասը ջնջել, իսկ մնացածը թողնել: :think
Հիմա ինձ պետք է մի script գրել, որը command line-ից ստացած file-ում գտնում է, թե ստացած երկրորդ արգումենտը որտեղ է հանդիպում առաջին անգամ ու ջնջում դրանից առաջ եղած-չեղածը: Inet-ում փորձեցի ինչ-որ բան գտնեմ դրա հետ կապված, բայց գտածս լավագույն տարբերակը ջնջում է առաջին տողն ու փնտրվող string-ը պարունակող առաջին հանդիպած տողը նարառյալ, իսկ ինձ պետք է, որ չներառի (հուսով եմ՝ ստացվեց բացատրել:oy):
Էդ գտածս ձևը սա էր.
Ունեմ test_file.txt անունով մի file, որի վրա պիտի կատարվեն փոփոխությունները: Պարունակությունը հետևյալն է.
Line to be deleted. :)
bla
bla
bla
(((
:) :) :)
*
This line and those above will be removed.
0x0000
0x7fff
This line MUST stay. :)
0x8001
0x6dd1
And this one, too.
0x7d4b
The search-string is in the middle of line: 0x132b. The rest should stay.
0x2faa
0x48c8
Bash script-ը ունի այս տեսքը.
#!/bin/bash
###########################################
#### Delete all the lines in file up to the first met "0x". ####
###########################################
sed -i '1,/'"$2"'/d' test_file.txt
Հրամանը՝
./bash_script_example_2 test_file.txt 0x
Արդյունքը.
test_file.txt-ի պարունակությունը դառնում է այսպիսին.
0x7fff
This line MUST stay. :)
0x8001
0x6dd1
And this one, too.
0x7d4b
The search-string is in the middle of line: 0x132b. The rest should stay.
0x2faa
0x48c8
Ցանկալի արդյունքը.
test_file.txt-ը պիտի պարունակեր նաև "0x0000" տողը.
0x0000
0x7fff
This line MUST stay. :)
0x8001
0x6dd1
And this one, too.
0x7d4b
The search-string is in the middle of line: 0x132b. The rest should stay.
0x2faa
0x48c8
Խնդրում եմ, օգնեք, եթե կարող եք, ու ինչքան հնարավոր է շտապ:oy…
Ավելացվել է 6 րոպե անց
Հա, ու մեկ էլ.
բա որ հանկարծ էդ փնտրվող string-ը առաջին անգամ հանդիպի որևէ տողի ոչ թե սկզբում, այլ մեջը՝ ինչ-որ տեղ: Էդ դեպքում ինձ պետք ա էդ տողի՝ դրանից առաջ եղած մասը ջնջել, իսկ մնացածը թողնել: :think