Întrebări cu tag ['procesarea textului']
Întrebări despre modificarea, crearea sau analizarea fișierelor text simplu. Aceasta este o etichetă foarte largă, dacă întrebarea dvs. este despre utilizarea unui anumit instrument, vă rugăm să o etichetați și cu numele instrumentului (de exemplu, sed, awk, perl etc.)
Vreau să împart un text lung, separat de spații prin bash, dar nu reușesc. Comanda de mai jos se împarte în caractere, dar nu în delimitatori.
ecou „Vulpea iute a sărit peste câinele leneș” | pliază -w 10
ecou „Vulpea iute a sărit peste câinele leneș” | sed -e 's/.\{9\}/&\n/g'
Ar fi frumos să-l aveți pentru o interacțiune cu utilizatorul.
Sintaxa de intrare
format_text 10 ...
Cum pot scrie majuscule înaintea unui anumit caracter? (^)
Încerc să fac inversul linkului de mai sus.
Vreau să scriu totul după un anumit caracter sau cuvânt.
Poate fi folosind awk, sed sau bash
exemplu
inainte de
foo^bar
foobar ^ foobar
după
foo^BAR
foobar ^ FOOBAR
Mulțumiri
Am un dosar input.xml
care contine o linie: <exciton lambda="1" fix="hole"/>
în acea linie vreau să înlocuiesc 1 cu 2, dar nu pot folosi doar 1
ca cuvânt cheie, deoarece există alte cazuri de „1” în același fișier, așa că trebuie să folosesc cuvântul cheie lambda="1"
Încerc să folosesc comanda sed ca mai jos:
sed -i "s/lambda="1"/lambda="$value"/g" input.xml
Dar nu funcțion ...
Am următorul șir:
<Sub4Topic hi="1d9bhb" cbdshfghfgs(C)(2)(d)"><step stepid=" ajhdjgjgjfhgjhgrhghr" stepid="du" />
Aici vreau ca eticheta de pas și conținutul acesteia să fie eliminate. Ieșirea ar trebui să fie:
<Sub4Topic hi="1d9bhb" cbdshfghfgs(C)(2)(d)">
eu primesc Rapoartele DMARC de la Google zilnic ca fișier zip care conține un fișier XML. Descarc manual fiecare fișier zip ~/Documente/DMARC
.
Doresc să cumulez informațiile din toate rapoartele DMARC salvate și să produc un raport care să poată fi citit de om (de exemplu, un tabel din foaia de calcul LibreOffice Calc). Sunt pe un desktop standard Ubuntu 20.04, așa că aș prefera să n ...

Sunt un începător la interfața KDE Plasma. Nu pot vedea și edita caracterul care este tastat atunci când apăsați tasta introduce introduceți editori de text simple precum KWrite.
Iată sarcina mea:
Am un flux sursă de jurnal live dintr-un proces de mesagerie. O mulțime de rezultate sunt irelevante pentru mine, dar există secțiuni pe care vreau să le colectez și să le evaluez separat. Aceste blocuri încep cu „---BEGIN Request---” la sfârșitul unei linii separate care începe cu data/ora, numele gazdei și procesul[pid]: . Și, în consecință, un bloc se ter ...
Am un fișier cu următorul conținut:
$ cat file.txt
CREATE COLLATION public.collation123 (furnizor = libc, locale = 'fr-FR');
CREATE COLLATION public.collation_1 (furnizor = libc, locale = 'bas');
CREATE COLLATION public.collation_test (furnizor = libc, locale = 'fr-FR');
Vreau să înlocuiesc prima apariție de local = 'fr-FR'
cu local = 'fr_FR.utf8'
.
După înlocuire, fișierul ar trebui s ...

A trebuit să generez un fișier text pentru un anumit interval de numere. Ca de obicei, a trebuit să folosesc seq range_start range_end > text_file.txt
pentru a-l pune într-un fișier text.
Am dat intervalul seq unde a fost punctul de plecare 01700
iar punctul final a fost 01800
. Știu că este inutil să ai 0 înaintea numărului, dar în cazul meu a fost important. Fișierul generat avea rà ...
Am o listă lungă de abrevieri comune pentru cuvintele din titlurile periodice. În listă, cuvântul complet este urmat de abrevierea acestuia. De exemplu:
- Administrare
- Admin.
- Aplicat
- Aplic.
- Administrativ
- Administrator.
- Aproximativ
- Aproximativ.
Vreau să transform lista într-un tabel Markdown, astfel:
Cuvânt | Abreviere |
---|---|
Administrare | Admin. |
Aplicat | Aplic. |
Am un fișier care arată așa:
2000
2000
2001
2001
2001
2001
2002
2002
Am nevoie de un script care să-mi arate asta:
2000 - 2
2001 - 4
2002 - 2
Prefer să folosesc sed sau awk
Încerc să filtrez rezultatul ssh-keyscan. Scopul acestui lucru este de a filtra ieșirea, astfel încât să o pot folosi în codul meu python pentru a identifica gazdele conectate la VPN-ul meu. În mod normal, aș folosi grep pentru a filtra, unul dintre greps-ul meu filtrează corect, dar celălalt nu.Primul grep lucrează pentru a obține doar ID-ul ed25519, dar nu sunt sigur de ce primesc și lin ...
Am următorul format de fișier
Primit de la +11231231234 la 2021-10-10T19:56:50-07:00:
Acesta este un mesaj care conține cuvinte precum de la, la etc.
Trimis la +11231231234 la 2021-10-11T06:50:57+00:00:
Acesta este un alt mesaj care conține cuvinte precum to, at etc.
Vreau să curăț liniile „Received” și „Sent”, următoarele comenzi sed realizează acest lucru
fisier pisica | se ...
Am un fișier care conține câteva date aleatorii precum:
numărul1 numărul2 numărul3
&SFÂRŞIT
Vreau să adaug un \ la sfârșitul liniei care conține numărul 3, dar nu pot potrivi un model pe acea linie, deoarece numărul se schimbă în continuare. Așa că încerc să potrivesc „&END” în sed și apoi să adaug o linie înainte, dar asta nu funcționează pentru mine, deoarece cr ...
awk {'printf ("%5s\t%s\n", $0, $NF)'} test_VN.txt
funcționează pentru duplicarea unei coloane într-un fișier text, totuși, cum pot adăuga _VN
inainte de .jpeg
extensia coloanei duplicate?
De exemplu, vreau să am această ieșire:
21_48.jpeg 21_48_VN.jpeg
24_48.jpeg 24_48_VN.jpeg
25_48.jpeg 25_48_VN.jpeg
Vreau să citesc prima coloană din test_VN.txt care are doar o coloană și să o salvez în ...
Mă întrebam doar dacă cineva ar putea să-mi spună cum să număr aparițiile fiecărui caracter diferit dintr-un fișier text și, de asemenea, un total al tuturor aparițiilor tuturor celor adăugate la sfârșit.
Încerc doar să învăț procesul pentru propriile mele cunoștințe.

Am un singur proiect .git/config fișier în care am următorul conținut:
[utilizator]
nume = <Nume complet>
email = <EmailID>
username = <UserName>
[nucleu]
editor = nvim
spatiu alb = corectare,-indentare-cu-non-tab, spatiu-final, cr-at-eol
pager = delta
[web]
browser = google-chrome
....
....
[alias]
a = adaugă --all
ai = adaugă - ...

Aș dori să extrag anumite rânduri din anumite coloane din tabele diferite, pe baza antetului coloanei. Cu toate acestea, cunoștințele mele par să fie prea limitate pentru a le rezolva singur (atât în linia de comandă, cât și în python).
Am un director cu un număr tot mai mare de fișiere .tsv (tabelele OTU). Toate aceste fișiere au același aspect:
- Rândul 1 conține anteturi.
Ceea ce am nevoie
Am un script existent care extrage informații despre porturi pentru domenii și le stochează într-un fișier text numit portscan.txt
. Exemplu:
portscan.txt
fişier:
somedomain.com:80
somedomain.com:443
Doresc să șterg informațiile numai dacă sunt îndeplinite anumite condiții. Aceste condiții includ:
- Fișierul cu domeniile ar trebui să aibă 2 sau mai puține linii
- Portu ...
Am un fișier fasta care conține ID-uri și secvențe de genul acesta:
>4S3O_2:C
GSMSQAVQTNGTQPLSKTWELSLYELQRTPQEAITDGLEIVVSPRSLHSELMCPICLDMLKNTMTTKECLHRFCADCIITALRSGNKECPTCRKKLVSKRSLRPDPNFDALISKIYPS
>5JH8_1:A
AAMVLAYYSGYAGNYAALTRYAASFNAVAVDFYNITAQGAVTGNGDPAPNDAISFLLGRKIPAYGCVSNVDGNGNWSADIAHAVSTSAQSQAVANLVKFAQDKRFSGINVDFEAVAQGDRNNFSHFI
Vreau să tai recursiv liniile care conțin id-urile și ...
Trebuie să extragem coloana din rezultatul comenzii. Am încercat metodele folosind comenzile awk și cut. În timp ce avem spațiile în valorile coloanei a doua, din cauza cărora delimitatorul pentru spațiu sau alt caracter nu analizează rezultatul coloanei a doua într-un mod corect. Avem altă metodă pentru a obține doar a doua coloană a rezultatului, așa cum s-a menționat mai sus?
# ca ...

Am următoarea comandă grep introdusă în sed pentru a găsi un atribut de nume de element și pentru a stoca rezultatul sed într-o variabilă de nume.
nume=$(grep -E "<element.*nume=.*/>" "$F" | sed -e "s/.*<element.*nume=\(.*\)\/>.*? /\1/")
Eșantion de date -
<element name="Barium"/>
Ieșire dorită -
Bariu
Ieșire reală -
<element name="Barium"/>
Sunt puțin confuz c ...
Cum să afișați numele fișierelor cu 4 sau mai multe caractere folosind comanda ls
eu folosesc Ubuntu 18.04 și versiuni ulterioare, atât desktop, cât și server, și caută instrumente terminale pentru a interoga / scrie într-un fișier CSV mare în mod eficient și, de asemenea, ușor de interacționat (puține comenzi simple sau comenzi care seamănă cu limbajul de interogare SQL).
Ce ai recomanda?
Vreau să salvez numele și adresa mac ale tuturor dispozitivelor Bluetooth în două matrice după rularea acestei comenzi bt-dispozitiv -l
:
Rezultatul ar trebui să fie așa:
NAME="Dispozitiv1","Dispozitiv2"]
MAC_ADDRESS="["Mac_address1" , "Mac_address2"]
Vă rog să mă ajutați! Folosesc ubuntu 20.04, lucrând cu script-ul bash.

Am următoarea funcție bash care o folosește sed
pentru a extrage secțiuni care apar între ## Mod: org
și ## # Sfârșitul organizației
, Unde #
este caracterul de comentariu. În cele din urmă, elimin caracterul de comentariu și orice spații.
Aceasta este intrarea mea
cat /home/flora/docs/recnotes.txt
## Mod: org
# Atribuie parametrii poziționali ai shell-ului sau modifică valorile ...
Am un fișier .txt care constă din:
Aa 6
Bb 3
Aa Aa 2
Bb Bb 10
Trebuie să o sortez, astfel încât rezultatul este:
Bb Bb 10
Aa 6
Bb 3
Aa Aa 2
Aceasta dă doar ordinea alfabetică:c
cat .txt | sortare -n
Poți să ajuți aici? Cu stima Anders
Iată numele fișierului: SUMAAI011.A01
Aici este conținutul fișierului și aș dori să redenumim prima linie 01UMAGL011
la 01UMAKBO11
01UMAGL011
0201
0306222021
041063563563
051066675663
063147000
07000
Ceea ce am nevoie
Am o listă de domenii de genul:
a.example.com
b.foo.com
a.b.bar.com
Vreau doar ca ieșirea să ia domeniile de nivel al doilea și nimic altceva, adică nici un nivel al 3-lea sau mai mare. Acesta este ceea ce caut din lista mea de exemple de mai sus:
exemplu.com
foo.com
bar.com
Ce am încercat
Am încercat să folosesc sed
, awk
, și a tăia
după cum urmează:
sed
Cat domains.txt | sed ...
Să presupunem că am un fișier .txt:
Aaa
Aaa Bbb
Aaa Bbb Ccc
Vreau să găsesc rândul care are un cuvânt cu majuscule, două cuvinte cu majuscule și trei cuvinte cu majuscule. Deci un grep pentru a găsi Aaa, un grep pentru a găsi Aaa Bbb și un grep pentru a găsi Aab Bbb Ccc. Acest lucru trebuie făcut pentru ca grep-ul care găsește Aaa Bbc să nu îl găsească pe cel cu Aaa Bbb Ccc (pentr ...