Вы можете сделать это в два этапа:
zip -d myjar.jar path/to/file/to/delete
jar uf myjar.jar -C base/path path/to/file/to/add
Вы можете игнорировать часть -C base/path
, если вы уже находитесь в базовом каталоге (, содержащемpath/to/file/to/add
).
При работе с JAR-файлами, а не с простыми ZIP-файлами, вы должны привыкнуть использовать jar
, а не zip
, насколько это возможно; он гарантирует, что манифест хранится правильно.
С помощью обычного ZIP-файла вы можете добавить или обновить файл, просто (повторно -)заархивировав его; поэтому вместо приведенной выше команды jar
используйте:
zip myzip.zip path/to/file/to/add
Чтобы это работало, вы должны находиться в базовом каталоге.(jar
тоже подойдет, но странно требовать jar
при работе с ZIP-файлами.)
Я собираюсь снова проголосовать за короткие ответы, но вот один:
awk '{if ($0 ~ /A/) {printf 1} else {printf 0}}' datafile
Здесь вам понадобится printf, так как awk напечатает символ новой строки. Если вы хотите/нужны запятые, вы можете добавить их.
Дано
> df=data.frame(
+ eye_problemsdisorders_f6148_0_1=c("A","C","D",NA,"D","A","C",NA,"B","A"),
+ eye_problemsdisorders_f6148_0_2=c("B","C",NA,"A","C","B",NA,NA,"A","D"),
+ eye_problemsdisorders_f6148_0_3=c("C","A","D","D","B","A",NA,NA,"A","B"),
+ eye_problemsdisorders_f6148_0_4=c("D","D",NA,"B","A","C",NA,"C","A","B"),
+ eye_problemsdisorders_f6148_0_5=c("C","C",NA,"D","B","C",NA,"D","D","B")
+ )
, затем
> f = function(x) any(x == "A", na.rm = TRUE)
>
> apply(df, MARGIN = 1, FUN = f)
[1] TRUE TRUE FALSE TRUE TRUE TRUE FALSE FALSE TRUE TRUE
>
Приведение логических значений TRUE
, FALSE
к числовым 1
, 0
и добавление в качестве нового столбца:
> df$case <- as.numeric(apply(df, MARGIN = 1, FUN = f))
>
>
> df
eye_problemsdisorders_f6148_0_1 eye_problemsdisorders_f6148_0_2
1 A B
2 C C
3 D <NA>
4 <NA> A
5 D C
6 A B
7 C <NA>
8 <NA> <NA>
9 B A
10 A D
eye_problemsdisorders_f6148_0_3 eye_problemsdisorders_f6148_0_4
1 C D
2 A D
3 D <NA>
4 D B
5 B A
6 A C
7 <NA> <NA>
8 <NA> C
9 A A
10 B B
eye_problemsdisorders_f6148_0_5 case
1 C 1
2 C 1
3 <NA> 0
4 D 1
5 B 1
6 C 1
7 <NA> 0
8 D 0
9 D 1
10 B 1