Замена строк, имеющих Count, на Count = его вхождению
Предполагая, что Count является первым словом в строке
awk -v c=1 'sub(/^Count.*/, "Count = " c) {c++}; {print}' /tmp/rand_file1
Предполагая, что Count является первым словом в строке, но ему может предшествовать ноль или более пробелов, пробелы не сохраняются.
awk -v c=1 'sub(/^[[:blank:]]*Count.*/, "Count = " c) {c++}; {print}' /tmp/rand_file1
Вам может повезти! Когда-то была ошибка, из-за которой файлы.lock не разблокировались после выдачи useradd, хотя я помню, что это был REHL 9 или что-то в этом роде.
Если вы читаете файлы, они могут содержать PID, соответствующий последнему известному актеру в файле. Кроме того, вы можете добавить пользователя, и он будет успешно завершен, несмотря на то, что в STDout будет напечатано противоположное. Вы используете ОС 2017/2018, поэтому я могу только надеяться, что она не содержит ошибки, подобной той, что я описал.
Попробуйте
lslocks
покажет файлы, заблокированные с помощью flock вручную или приложениями.
Попробуйте использовать lsof, чтобы получить пользователя, который заблокировал файл.
lsof /etc/.group.swp
Тоже должно показывать подобное.
~]# lsof /etc/.group.swp
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vim 27611 root 4u REG 253,1 12288 6299017 /etc/.group.swp
или, возможно,
vim /etc/group
vim покажет (, если файл заблокирован ), что он заблокирован, кем, был ли файл изменен и т. д.
Вывод vim на заблокированный файл
E325: ATTENTION
Found a swap file by the name "/etc/.group.swp"
owned by: root dated: Mon Feb 24 14:49:08 2020
file name: /etc/group
modified: no
user name: root host name: testfoonameserver101
process ID: 27611 (still running)
While opening file "/etc/group"
dated: Fri Feb 21 09:23:49 2020