(Пользователь Debian "buster" с крутоном здесь.)
Недостатком crouton является «режим разработчика», который означает, что вам нужно быть немного более осторожным с безопасностью, чем без него. Во-вторых,crouton "не поддерживается", поэтому вы можете (раз в год или около того )столкнуться с проблемами, которые вам нужно будет найти на странице crouton "проблемы" для их устранения. Все это объясняет ответ LiveWireBT.
с помощью awk
и с использованием функции split()
:
awk -v FS=';' 'split($1,a,/-/) {$1=a[1];print $1, $2, $3, $4}' OFS=';' file
aaa;bread;apple;banana
aaa;bread;apple;banana
aaa;bread;apple;banana
bbb;bread;apple;banana
bbb;bread;app-le;banana
bbb;bread;apple;banana
Используйте sed
в не -жадном (кратчайшем возможном )совпадении:
sed 's/-[^;]*;/;/' infile
Это будет работать с использованием любого awk в любой оболочке на каждом компьютере Unix, независимо от того, какие поля содержат -
s и есть ли они в первом поле или нет:
$ awk 'BEGIN{FS=OFS=";"} {sub(/-.*/,"",$1)} 1' file
aaa;bread;apple;banana
aaa;bread;apple;banana
aaa;bread;apple;banana
bbb;bread;apple;banana
bbb;bread;app-le;banana
bbb;bread;apple;banana
awk '{gsub(/-[0-9]*/,"",$1);print }' filename
sed 's/-[0-9]*//g' filename
Питон
#!/usr/bin/python
import os
import re
m=re.compile(r'-[0-9]*')
k=open('filename','r')
for i in k:
m=re.sub(o,"",i)
print m.strip()
выход
aaa;bread;apple;banana
aaa;bread;apple;banana
aaa;bread;apple;banana
bbb;bread;apple;banana
bbb;bread;apple;banana
bbb;bread;apple;banana