Puncte:3

Cum să adăugați data și textul la un fișier ca alias?

drapel pl

Vreau să creez un alias pentru a adăuga o notă datată la un fișier. (Cazul de utilizare pe care vreau să îl reproduc: Sebastian Daschner - Cum să luați notițe eficient ca dezvoltator.

Până acum am reușit să atașez data, dar nu pot găsi o modalitate de a adăuga atât data, cât și nota din datele introduse de utilizator.

Utilizare

adăugați la fișier „textul meu”

Rezultat așteptat în fișier.txt

2021-08-30 : ceva text anterior
2021-09-01 : textul meu

Aliasul pe care l-am scris până acum

alias append-to-file='tee -a file.txt <<< $(echo $(data -I) :)'
sudodus avatar
drapel jp
Este o notă simplă pe care o puteți tasta într-o comandă simplă „citește” sau aveți nevoie de un editor de text pentru a crea nota?
Puncte:4
drapel cn

Puteți face acest lucru cu un mic script. O modalitate ar putea fi:

#!/bin/bash
echo "$(data -I) : $@" >> fișier.txt
coada -n 1 fișier.txt

The $@ variabila reprezintă orice ați introdus la linia de comandă. The coadă comanda va trimite ultima linie a fișierului pe ecran.

Salvați acest script în dvs ~/bin sau în dvs .local/bin director ca anexează la fișier. Creați directorul dacă nu există. Data viitoare când vă conectați, oricare dintre aceste directoare va fi inclus în PATH. Apoi puteți introduce comanda oricând. Ceea ce introduceți va fi salvat într-un fișier fișier.txt în directorul de lucru curent.

drapel pl
Vă mulțumesc pentru răspunsul rapid. Am scris un script și l-am adăugat la cale. Apoi am creat un alias pentru a-l invoca. O voi face mai generică mai târziu, dacă este necesar (primul argument pentru calea fișierului țintă și alte argumente pentru conținut)
vanadium avatar
drapel cn
Dacă vă plac aliasurile, puteți face, desigur ;) Aș da pur și simplu scriptului în sine un nume scurt. Aliasurile sunt destinate în principal să adauge opțiuni implicite la o comandă sau să aibă variații (de exemplu, `alias ls='ls --color=auto'`, `alias la='ls -A'`). Pentru orice executabil care nu se află în cale, este mai personalizat să creați un link într-un folder din cale decât să îl puneți într-un alias (ceea ce se poate face).
Puncte:4
drapel hr

Dacă doriți ceva căruia îi puteți transmite un mesaj text ca argument, ar trebui să vă uitați la o funcție shell mai degrabă decât la un alias.

Puteți lua în considerare utilizarea utilitarului ts (timestamp) din pachetul moreutils:

anexa la fisier () { printf '%s\n' "$*" | este „%Y-%m-%d :” >> /cale/la/fișierul meu.txt ; }

Dacă ts nu este o opțiune, tu poate sa inserați text în șirul de format al Data comanda - dar ar trebui să fii atent % personaje:

adăugați la fișier () { msg="$*"; data „+%Y-%m-%d : ${msg//%/%%}” >> /path/to/myfile.txt ; }

sau (multumesc lui @bac0n) poate mai sigur, folosește bash printf capabilitățile de formatare a timpului proprii ale funcției - nu este nevoie de înlocuire %s în această metodă, deoarece mesajul este transmis ca argument șir, mai degrabă decât încorporat în șirul de format:

anexa la fisier () { printf '%(%Y-%m-%d)T : %s\n' -1 "$*" >> /path/to/myfile.txt ; }

Dacă doriți să se răspundă și la terminal, înlocuiți >> cu | tee -a

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.