Я занимался этим около двух недель, прежде чем я понял, как переключиться в классический режим. Кажется, Ubuntu по-разному выглядит на компьютерах некоторых людей. Во-первых, у меня не было выхода из системы. Для выхода нажмите Alt + F2. Затем вставьте следующее в текстовое поле и нажмите enter:
gnome-session-save --force-logout
Как только на экране входа в систему. Если ваш компьютер похож на мой, все еще нет настольных параметров, которые можно увидеть где угодно. В этот момент нажмите «Ввод» два раза, а параметры рабочего стола будут отображаться в нижней части экрана. Выберите тот, который вы хотите (например, классика похожа на Ubuntu 10.10 по умолчанию), а затем снова зайдите.
Так:
( stat -c %y test_file.txt | awk -F '.' '{print $1}' ; cat test_file.txt ) > /tmp/temp_file && mv /tmp/temp_file test_file.txt
Вот небольшая демонстрация:
$> echo "Hello World" > test_file.txt
$> ( stat -c %y test_file.txt | awk -F '.' '{print $1}' ; cat test_file.txt ) > /tmp/temp_file &&
> mv /tmp/temp_file test_file.txt
$> cat test_file.txt
2016-08-03 09:24:27
Hello World
Объяснение:
Мы получаем временную метку и содержимое файла в подоболочке, обозначаем в скобках (...) stat -c %y test_file.txt | awk -F '.' '{print $1}' timpedamp трипса cat test_file.txt читает содержимое файла. Полученный текст - это метка времени и все, что было в файле, перенаправляется на /tmp/temp_file. Наконец, мы заменяем исходный файл содержимым /tmp/temp_fileКак насчет использования ed вместо sed?
$ ed -s test.txt << EOF
0r !stat -c \%y %
1 s/\.[0-9]*//
w
q
EOF
Это говорит:
считывает вывод команды stat -c \%y % и вставляет его в положение 0 в буфер, т.е. перед первой строкой. Обратите внимание, что в ed неэкранный % является сокращением для текущего файла. на этой (сейчас первой) строке вместо нуля заменить вместо десятичного периода и после цифр записать результат обратно в файл и выйти-s не является обязательным - он просто предотвращает вывод ed количество строк. Если stat добавляет смещение часового пояса в вашем регионе / часовом поясе, и вы также хотите его удалить, вы можете изменить команду s, чтобы удалить период и все последующие за ним, например. s/\..*//
Также можно использовать ed в однострочном режиме, выполняя свои команды со стандартного ввода с использованием echo или printf, хотя немного сложно получить право экранирования: [ ! d8]
printf '0r !stat -c \%%y %%\n1 s/\.[0-9]*//\nw\nq' | ed -s test.txt