Чтобы сохранить результат команды в переменной, вам просто нужно обернуть команду между ``или $():
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
Имейте в виду, что команда является грубым примером, и ее, возможно, придется подправить, чтобы избежать дублирования (, поскольку, если в вашем каталоге есть подкаталоги, у вас будут разные выходные данные для одного и того же родителя ).
Чтобы изменить несколько столбцов, разделите назначения точкой с запятой:
$ 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
Вы можете попробовать команду ниже
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