SALUT,
est probablement quelque chose de très facile, mais je ne comprends pas maintenant. Sous Linux, shell, étant donné un fichier texte, comment puis-je faire quelque chose comme, cat filename donc je ne vois que la première ligne, la troisième ligne, 5, 7, 9 et ainsi de suite?
sinon avec chat, avec une autre commande
Merci
{print}
est l'action par défaut, doncawk 'NR % 2 == 0' < myfile
c'est suffisant.2 == 0
par2 == 1
pour le contraire.Ou quelque chose comme
Pour obtenir des explications, recherchez la page de manuel de
sed
.la source
sed
version portable qui m'a échappé.sed -n '1d;p;n'
pour les lignes paires par exempleUtilisez sed:
la source
sed
n'est pas la valeur par défaut.sed
manuel GNU gnu.org/software/sed/manual/html_node/Addresses.html#Addresses dit «première étape Cette extension GNU…». Il ne le mentionne pas--posix
. Quand j'essayegsed --posix -n 1~2p
(GNU sed 4.2.1), j'obtiensgsed: -e expression #1, char 2: unknown command: ‘~’
.la source
2 façons de le faire avec awk
OU avec juste la coquille
la source
Une simple recherche dans Google montre ce lien: http://bash.cyberciti.biz/academic/write-odd-even-line-file/
Vous n'avez qu'à le modifier un peu.
Mes 2 cents.
la source
Je n'ai pas testé cela (ne semble pas fonctionner sur Mac OS X), mais GNU sed prend
first~step
en charge la sélection d'adresse, par exemple:sed -n 1~2p file
commencerait à la première ligne et imprimerait toutes les autres lignes après cela.
la source
sed
dans l'installation de base.Impossible de tester, a trouvé un lien: cat -n $ 1 | grep "$ ODDRE" | couper -b 8-> oddfile. $$
la source
ODDRE
est prévu. Mais cette réponse ne fonctionnera que si le fichier est inférieur à un million de lignes.Vous pouvez utiliser ces commandes pour exiger un résultat
awk 'NR% 2 == 1'
sed -ne '1 ~ 2p'
la source
ls -l
là?