J'ai lu cet article: sed delete remaining characters in line except first 5 qui m'aide à supprimer tous les caractères après x. Cependant, j'ai du mal à trouver comment supprimer tous les mots après x caractères.Comment faire pour supprimer tous les mots après X caractères
J'ai commencé avec ce code:
echo "StackOverflow Users Are Brilliant And Hard Working" | sed 's/.//30g'
#character 30 ---------------------^
Ma tentative:
echo "StackOverflow Users Are Brilliant And Hard Working" | sed 's/ .* //30g'
#character 30 ---------------------^
Dans ces sorties, je soit coupé le dernier mot ou le comptage des mots. Au lieu de cela, je dois supprimer les mots après 30 caractères. Je cours cela sur différentes longueurs de lignes/mots, c'est pourquoi je ne peux pas simplement le mettre à la fin du mot.
sortie souhaitée:
StackOverflow Users Are Brilliant
Si vous savez comment mettre en comptant ensemble les mots après x caractères, votre aide serait grandement appréciée.
Veuillez noter: Comme indiqué précédemment, ne modifiez pas le code en 33 ou 34 caractères. Le point de la question est de supprimer tous les mots après 30 caractères.
Cool solution @batman :-) Fonctionne pour moi! – DomainsFeatured
Grep solution est la plus courte, j'essayais de résoudre cela avec grep aussi, mais j'ai oublié '^' et il a produit plusieurs lignes. –
@ PawełTatarczuk @batMan, j'ai effectivement utilisé la solution de Pawel dans mon programme. Mais, j'ai choisi cela à cause de la double réponse de 'awk' et' grep'. En outre, il a le meilleur score et je vous dois un batman. Pawel, j'espère que beaucoup de gens ont voté pour votre réponse parce que vous avez donné une explication très utile. Cela m'a beaucoup aidé et aidera les autres aussi. Merci encore batMan :-) – DomainsFeatured