- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Microsoft Excel topic
- A pápa egyre jobban tart a romlott AI veszélyeitől
- Milyen program, ami...?
- Windows 10
- Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
- Otthoni hálózat és internet megosztás
- Milyen routert?
- Az USA nem akarja visszafogni Kína növekedését
- Xiaomi AX3600 WiFi 6 AIoT Router
Új hozzászólás Aktív témák
-
Jester01
veterán
-
-
bambano
titán
nem tesztelt, ötletadó megoldás:
cd ujdir
(cd regidir; find . -name '*.mp3') | while read p ; do
regidir=$(dirname $p)
[ -d $regidir ] || mkdir -p $p
lame <parameterek> regidir/$p $p
donea lame paraméterezését nem tudom, azt szülje meg valaki.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
-
ngabor2
nagyúr
no, erre senki?
nekem csak igen csúnya megoldások jutnak eszembe, biztos, hogy vannak sokkal egyszerűbbek is...
(pl. wc -l-lel megvan, hogy hány soros. tail/head párossal mindig kiolvasom egy ciklusban hátulról a köv. sort, és azt egy másik file-hoz fűzöm. ez kifejezetten csúnya szerintem, nem is írtam meg.)
[ Szerkesztve ]
-
Jester01
veterán
válasz ngabor2 #1122 üzenetére
Imagemagick tudja, hogy aránytartóan átmeretez úgy, hogy 1024x1024-be beleférjen. Kb. annyi az egész, hogy:
find . -type f | while read file; do mkdir -p "../out/${file%/*}" && convert -verbose "$file" -resize '1024>x1024>' "../out/$file"; done
Abba a részfába írni amit a find éppen feldolgoz nem éppen életbiztosítás, ezért én itt inkább egy feljebb lévő out directoryba írok.
A file listára szétszedés innen már triviális (akkor persze már lehet ugyanoda pakolni a kimenetet).Jester
-
Jester01
veterán
válasz ngabor2 #1726 üzenetére
Összedobtam egy kis progit, de nem shell script
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <stdbool.h>
#define ELEMENT char
#define EQUAL(a, b) ((a) == (b))
#define OFFSET int
#define NOTE_DELETE(ctx, xoff) note_delete(ctx, xoff)
#define NOTE_INSERT(ctx, xoff) note_insert(ctx, xoff)
#define EXTRA_CONTEXT_FIELDS
#undef MIN
#undef MAX
#define MIN(a, b) ((a) <= (b) ? (a) : (b))
#define MAX(a, b) ((a) >= (b) ? (a) : (b))
struct context;
static void note_delete(struct context* ctxt, int xoff);
static void note_insert(struct context* ctxt, int xoff);
#include "diffseq.h"
static int cost = 0;
static void note_delete(struct context* ctxt, int xoff)
{
cost += 1;
}
static void note_insert(struct context* ctxt, int xoff)
{
cost += 1;
}
int main(int argc, char** argv)
{
struct context ctxt;
int len1 = strlen(argv[1]);
int len2 = strlen(argv[2]);
int diags = len1 + len2 + 3;
ctxt.fdiag = calloc(2 * diags, sizeof(*ctxt.fdiag));
ctxt.bdiag = ctxt.fdiag + diags;
ctxt.fdiag += len2 + 1;
ctxt.bdiag += len2 + 1;
ctxt.too_expensive = len1 + len2;
ctxt.xvec = argv[1];
ctxt.yvec = argv[2];
compareseq(0, strlen(ctxt.xvec), 0, strlen(ctxt.yvec), false, &ctxt);
printf("%d\n", cost);
return (cost == 0) ? 0 : 1;
}A diffutils-ból kell hozzá a diffseq.h fájl.
$ ./a.out ablak ablak
0
$ ./a.out ablak albak
2
$ ./a.out ablak alak
1[ Módosította: ngabor2 ]
Jester
-
ngabor2
nagyúr
válasz ngabor2 #1732 üzenetére
Alakulok, alakulok, de még messze vagyok még.
A pontos megoldássan beírt "Szociális Szövetkezet"-eket gond nélkül megtalálja a lenti szkript.
Viszont a hasonlók kigyűjtését legfeljebb elméletileg bírtam végigvinni, vagy úgy se.
Első részfeladathoz egy kis segítség magamnak:
#!/bin/bash
string="elem1 elem2 elem3"
hossz=$(echo $string| wc -w)
for i in $(seq $hossz)
do
echo $(echo $string | cut -d" " -f $i)
doneEz egy többszavas sorból egyenként adja vissza a szavakat (biztos van rá alapból egyszerűbb módszer ). Az utolsó előtti sor első echo-ja helyett mehetne az összehasonlítás. Ezt kell a Jester által írt progival összehasonlítani 4 szóval (mert a 2 szó lehet végig nagybetűvel is). Ahol egy sorban 2 db 0 van, azt a korábbi szkript is megtalálja. Ha egy 0 van benne, a többi nagy szám, az nekünk nem kell. Ha viszont van 2 kis szám (pl. 5 alatti, az egyik akár 0 is lehet), akkor az a szakasz kell.
Ami nekem problémát okoz, hogy egyrészt oldalanként 50 darab 5 (pontosabban 7) soros szakasz 3. sorának egy részletét kell vizsgálni, és ha ott van 2 hasonló, de nem azonos szó, akkor azt a szakaszt változatlanul át kell másolni egy fájlba. És ez meg sok-sok oldalon keresztül...
Egy másik fórumtárstól kaptam egy awk szkriptet, amivel a html-ből kiszedi a sorokat:
awk '\
BEGIN { IGNORECASE = 1; output = ""; }\
/<td width="15" align="right" class="szoveg">/ { match($0, ">(.*?)<", a); output = a[1]; }
/<td width="60%" class="szoveg" align="left">/ { match($0, ">(.*?)<", a); output = output "; " a[1]; }
/<td align="center" class="szoveg">/ { match($0, ">(.*?)<", a); output = output "; " a[1]; }
/<td align="center" class="szoveg" width="120">/ { match($0, ">(.*?)<", a); output = output "; " a[1]; }
/--/ { match(output, ".*szociális.*szövetkez[^<]*", b); if ( b[0] != "" ) print b[0]; }
' szoc.txtEbből igazából csak a /<td width="60% kezdetű részre, meg a körítésre van szükség, és az ebben levő szavakat kell vizsgálni. Viszont hogy határozatlan mennyiségű számból hogyan lehet megállapítani, hogy van-e benne 2 db 5 alatti, az már nem az én súlycsoportom... meg úgy egy az egyben az egész.
IMHO lassan eljut ez a projekt arra a szintre, hogy nem egy szkript a legkézenfekvőbb megoldás erre.
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Warhammer Online - Age of Reckoning (DE) Collectors Box (Figurával!)
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- World of Warcraft Shadowlands Collectors edition EU EN
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Eladó Steam kulcsok kedvező áron!