Вы могли бы сделать это с помощью perl:
#!/usr/bin/perl
# number of parent directories to drop
$drop = 2;
open( $input, '<', $ARGV[0] );
# drop header lines
$line = <$input>;
$line = <$input>;
# third line is first data, being root has no name, was requested that it wasn't used, which is good, because it makes life simplier, assuming the first dir is always 1
$line = <$input>;
#@databits = split(/\s+/, $line);
$hash{'1'} = '';
while ( $line = <$input> ) {
@databits = split(/\s+/, $line);
$hash["$databits[0]"] = $databits[1];
}
close( $input );
open( $input, '<', $ARGV[0] );
# now we print!
# headers
$line = <$input>;
print "$line";
$line = <$input>;
print "$line";
# drop first data line
$line = <$input>;
while ( $line = <$input> ) {
@databits = split(/\s+/, $line);
@replace = split(/\//, $databits[2]);
$count = 0; # start at the start
foreach (@replace) {
$replace[$count] = $hash[$_];
$count++;
}
for (my $i=0; $i < $drop; $i++) {
shift(@replace);
}
$replaced = join('/', @replace);
if ( $replaced ne '' ) {
print "$databits[0] $databits[1] /$replaced/ $databits[3]\n";
}
}
Подайте свой вывод в виде текстового файла, в приведенном ниже примере под названием «ввод». Вы можете сделать красивые столбцы с помощью команды column.
$./replace.pl input | column -t
modelId name folderPath uuid
7 Test /Test/ kbY7RDHjRLS
8 xxx /xxx/ bT5WAkPWQ1
9 Test /xxx/Test/ 9PYeLZDRTne
10 ab /ab/ 7Cse21+1SIag
11 abc /Test/abc/ pNMvzDdyS%
16 efg /Test/abc/efg/ a6R97tAxSBW
Та страница , которую вы цитируете, датирована 2010 годом.
Я использую vim 8.1, и он работает правильно.
Вы уверены, что используете версию vim с установленным графическим интерфейсом? используйте :version
для отображения включенных функций. +clipboard
должно отображаться.
Я установил vim-gtk3
для проверки этого (vim -tiny не имеет включенной функции буфера обмена и отображается как -clipboard
.
Я использую убунту 20.04.02
---редактировать --Ответ на комментарий
Только что перепроверил
vim.gtk3 -работает
vim.tiny -сбой
Я дергаю строку, используя следующую последовательность :"+yy
Я вставляю, используя следующую последовательность :"+p
:version VIM - Vi IMproved 8.1 (2018 May 18, compiled Sep 20 2021 11:42:42) Included patches: 1-2269 Modified by team+vim@tracker.debian.org Compiled by team+vim@tracker.debian.org
[2-е редактирование] Дальнейшие разъяснения по начальным двум тестам и последующему 3-му тесту.
Изначально пробовал 2 теста
Тест 1 на клемме 1
Тест 2 на клемме 1
Тест 3 на клемме 1
cat
Все тесты работают, когда я использую vim.gtk3
[Редактировать 3] Добавление ссылки на демо asciicast
Я использую X11, а не Wayland
echo $XDG_SESSION_TYPE
x11