Для Delphi 2010 вам необходимо создать свою собственную функцию split.
function Split(const Texto, Delimitador: string): TStringArray;
var
i: integer;
Len: integer;
PosStart: integer;
PosDel: integer;
TempText:string;
begin
i := 0;
SetLength(Result, 1);
Len := Length(Delimitador);
PosStart := 1;
PosDel := Pos(Delimitador, Texto);
TempText:= Texto;
while PosDel > 0 do
begin
Result[i] := Copy(TempText, PosStart, PosDel - PosStart);
PosStart := PosDel + Len;
TempText:=Copy(TempText, PosStart, Length(TempText));
PosDel := Pos(Delimitador, TempText);
PosStart := 1;
inc(i);
SetLength(Result, i + 1);
end;
Result[i] := Copy(TempText, PosStart, Length(TempText));
end;
Вы можете ссылаться на него как таковой
type
TStringArray = array of string;
var Temp2:TStringArray;
Temp1="hello:world";
Temp2=Split(Temp1,':')
Вы были очень близки. Попробуйте:
rm `ls -la | grep 'myid' | awk ' { print $9 } '`
Обратите внимание, что это обратные пометки, а не одиночные кавычки, окружающие первые три сегмента из вашего исходного конвейера. Также для меня столбец имени файла был $ 8, но если $ 9 является правильным столбцом для вас, то это должно сделать это.
find . -user myuser -print0 |xargs -0 rm
Введите свой собственный идентификатор пользователя (или, возможно, номер пользователя) для «myuser».
rm не читает из stdin.
find -user $ (whoami) -delete
Пожалуйста, всегда проверяйте без удаления первым.
Попробуйте с помощью найти
, где можно найти файлы, принадлежащие пользователю, а затем удалить их:
find . -user *username* -delete
Дополнительная информация: man find
rm не принимает список файлов для удаления на stdin (это то, что вы делаете, передавая его по каналу.
Попробуйте это
find . -type f -user username -exec rm -f {} \;
Вы можете использовать find:
find . -maxdepth 1 -type f -user myid -print0 | xargs -0 rm -f
Удалите -maxdepth 1, если вы хотите, чтобы он также обрабатывал подкаталоги.