Как мне узнать, остались ли у меня «чужие» пакеты в моем Linux

Учитывая эти файлы:

cat before.txt 
1  
2  
3  
4
1  
1  
2  
3  
4
2  
3  
4

cat after.txt
2743
3028
2850
1092

И этот маленький скрипт:

#!/bin/bash

while read -r line; do
    if [[ "$line"  == 4 ]]; then
        sed -n '1p' after.txt
        sed -i".bup" '1d' after.txt 
    else
        echo "$line"
    fi  
done < before.txt

Я получаю такой результат:

./script.sh 
1
2
3
2743
1
1
2
3
3028
2
3
2850

Я уверен, что есть awk oneliner, который может сделать это, но я не говорю awk свободно! Также, если вы хотите заменить ("на место") файл before.txt, вам придется изменить операторы sed в цикле. В противном случае вы можете просто перенаправить STDOUT в новый файл. В этом примере я решил вывести все в STDOUT для удобства просмотра.


Проверено под OS X 10.11.6 и BSD sed

2
21.05.2016, 01:34
0 ответов

Теги

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