Установка LS_COLORS не имеет никакого эффекта

awkрешение:

awk 'BEGIN{ FS=OFS="\t" }
     NR==FNR{ if(NF && !($0 in b)) { a[++c]=$0; b[$0] } next }{ b[$1]+=$2 }
     END{ len=length(a); for(i=1;i<=len;i++) if(a[i] in b) print a[i],b[a[i]] }' patterns data

  • BEGIN{ FS=OFS="\t" }-установка разделителя полей

  • a[++c]=$0; b[$0]-сбор уникальных имен журналов из patternsфайла

  • b[$1]+=$2-суммирование номеров для каждого имени журнала в файле data

  • if(a[i] in b) print a[i],b[a[i]]-добавить значение суммы к каждому имени журнала в файле pattern

Выход:

10th ECOMF,PAB  1
10th ICOCPS (CPV-'10)   29
10th ICOMAMOS (M2S-X)   3
JOP 75
AIP 34
HIT 42
...
1
07.10.2019, 14:24
2 ответа

Вам также необходимо экспортировать переменные. Если переменная не экспортирована, новые дочерние процессы не смогут ее увидеть.

Просто добавьте exportперед объявлением переменной, например, export LS_COLORS="di=0;35".

Однако все переменные будут стираться после каждого сеанса, и их нужно будет устанавливать заново в начале каждого нового сеанса. Чтобы сделать это автоматически (, предполагая, что вы используете bash ), просто добавьте строку в файл ~/.bashrc, так как этот файл запускается каждый раз, когда запускается новый сеанс bash.

1
28.04.2021, 23:28

Вы можете распечатать значения по умолчанию с помощью команды dircolor -p, изменить текущий цвет для каталогов(DIR 01;34= синий )с sedи используйте этот вывод в качестве ввода для команды dircolors.

Печатает измененное значение для переменной LS_COLORSи команды export LS_COLORS:

dircolors <(dircolors -p | sed 's/DIR 01;34/DIR 01;35/')

Если вы используете bash, вы можете добавить этот вывод к вашему ~/.bashrcи получить модифицированный~/.bashrc:

dircolors <(dircolors -p | sed 's/DIR 01;34/DIR 01;35/') >> ~/.bashrc
. ~/.bashrc
0
28.04.2021, 23:28

Теги

Похожие вопросы