![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Hoe vindt u het aantal lijnen in een bestand | somesh_p | Programmeren en Shell Scripting | 2 | 12-19-2007 09:15 PM |
| totaal aantal regels in een bestand | Raynon | Programmeren en Shell Scripting | 9 | 10-04-2007 10:13 |
| Knip een aantal regels uit een bestand | networkfre @ k | Programmeren en Shell Scripting | 1 | 12-09-2005 01:46 |
| Need Is die het aantal lijnen in elk bestand | GMMike | UNIX voor Dummies Questions & Answers | 1 | 11-19-2004 05:53 |
| Het tellen van Duplicate Lines in een bestand | crunchtime | UNIX voor Dummies Questions & Answers | 2 | 07-04-2003 02:24 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Hi All,
De volgende commando geeft het aantal regels in een bestand perl -le 'print $\u003d\u003d()\u003d<>' <file_name> Ik wil dit commando te gebruiken binnen een perl script en bewaar de output in een variabele. Hoe kan ik dit doen? Is hun andere methoden om dit vast te stellen? Thanks in advance JS |
|
||||
|
Uw code kent reeds het aantal lijnen aan de variabele $ \u003d (dat is echt een duister ding toch doen); gewoon veranderen aan wat variabele je echt wilt.
Meer in het algemeen, als je leest een bestand in een array, dan @ array in scalaire context zal u vertellen hoeveel lijnen zijn in die array. Vermoedelijk u iets meer te doen met het bestand dan alleen het aantal regels tellen in. |
|
||||
|
Bedankt Era.
Eigenlijk kreeg ik de code van het internet en niet de moeite te vinden hoe het werkt (dom van me) .. Ik wil alleen het aantal regels te slaan in een bestand in de variabele. Ik gebruiken om het volgende te doen binnen een shell script (zeg 1.sh) wc-l "sample_file_name"> 1.txt nee no_lof_line \u003d `cut-d" "-f1 1.txt" Ik moet dezelfde funda hier gebruik "binnen" een perl script (zeg test.pl) Ik nog steeds twijfel of de code zei ik in de eerste draad werkt nog steeds binnen een perl script. |
|
||||
|
Code:
my $f = "sample_file_name"; open (F, $f) || die "Could not open $f: $!\n"; my @f = <F>; close F; my $lines = @f; Overigens, in de shell script, als je omleiding gebruikt, hoeft u niet te gebruiken snijden om zich te ontdoen van de bestandsnaam. Code:
no_lof_line=`wc -l <sample_file_name` En natuurlijk, het tijdelijke bestand is ook helemaal niet nodig, hetzij manier. |
|
||||
|
Met perl -le'...' bestandsnaam je de open / dicht dans voor gratis. In een meer complexe script, je waarschijnlijk niet wilt dat. Als u het script ingesteld om het bestand in kwestie te lezen dan kun je overslaan open / dicht, en gewoon doen my @ f \u003d <> zoals in de originele one-liner.
Als u al de inhoud van het bestand hebben in een variabele $ string, dan kunt u rekenen de newlines daar met een eenvoudig $ lines \u003d () \u003d $ string \u003d ~ m / \ n / g - Dit is een cryptische afkorting voor een vrij complexe reeks van commando's die weer zou nemen meerdere regels in handschrift, unobfuscated vorm. |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|