При совпадении определенного ключевого слова измените значения нескольких столбцов в таблице

Чтобы сохранить результат команды в переменной, вам просто нужно обернуть команду между ``или $():

yourvar=`date +%Y`

или

yourvar=$(date +%Y)

yourvar будет иметь значение текущего года (2018 ). Вы также можете выполнить результат прямо в своей команде:

ls -la|  grep `date +%Y`

или

ls -la|  grep $(date +%Y)

Чтобы добиться желаемого, я бы использовал цикл for:

for i in `du -h |sort -rh|awk '{print $2}'|sed "s/.\///g"`;do ls -la |grep $i|awk '{print $3 " " $9}';done

Имейте в виду, что команда является грубым примером, и ее, возможно, придется подправить, чтобы избежать дублирования (, поскольку, если в вашем каталоге есть подкаталоги, у вас будут разные выходные данные для одного и того же родителя ).

-1
06.08.2020, 12:06
2 ответа

Чтобы изменить несколько столбцов, разделите назначения точкой с запятой:

$ awk -F, '$2==1 {$2="NA"; $3="NA"; $4="NA"}1' OFS=, file
38%,NA,NA,NA
32%,400,376.61,94.1525   
54%,400,197,49.25   
22%,NA,NA,NA
1
18.03.2021, 23:14

Вы можете попробовать команду ниже

awk -F "," '$2 == "1" {$2=$3=$4="NA"}1' file

выход

38% NA NA NA
32%,400,376.61,94.1525   
54%,400,197,49.25   
22% NA NA NA

Питон

#!/usr/bin/python
k=open('file','r')
for i in k:
    j=i.split(",")
    if (j[1] == "1"):
        j[1]=j[2]=j[3]="NA"
        print ",".join(j)

    else:
        print i.strip()

выход

38%,NA,NA,NA
32%,400,376.61,94.1525
54%,400,197,49.25
22%,NA,NA,NA
0
18.03.2021, 23:14

Теги

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