/etc/fstab
Linux의 파일에서 중복 행을 제거하기 위해 다음 awk를 사용하고 있습니다 .
문제는 로 시작하는 줄도 제거한다는 것입니다 #
.
awk
로 시작하는 줄을 무시하도록 구문을 어떻게 변경할 수 있습니까 #
?
awk '!a[$0]++' /etc/fstab > /etc/fstab.new
cp /etc/fstab.new /etc/fstab
답변1
#
반복되지 않는 줄뿐만 아니라 다음 문자로 시작하는 줄도 허용하도록 AWK에 지시합니다 .
awk '/^#/ || !a[$0]++' /etc/fstab > /etc/fstab.new
중복된 행 없이 이 작업을 피하려면(귀하의 의견에 따라) 다음과 같은 것을 사용할 수 있습니다.
if awk '!/#^/ && a[$0]++ { dup = 1 }; END { exit !dup }' /etc/fstab; then
awk '/^#/ || !a[$0]++' /etc/fstab > /etc/fstab.new
copy /etc/fstab.new /etc/fstab
fi
그러나 이것은 결국 두 번 작동하게 됩니다.