Puede verificar este ejemplo y trabajar de acuerdo a lograr su resultado.
Ejemplo :-Este código realiza el cambio y escribe el archivo modificado en "songs2.txt". El archivo de salida contiene:
1, Justin Timberlake, Título 545, Precio $7.30
2, Taylor Swift, Título 723, Precio $7.90
3, Mick Jagger, Título 610, Precio $7.90
4, Lady Gaga, Título 118, Precio $7.30
5, Johnny Cash, Título 482, Precio $6.50
6, Elvis Presley, Título 335, Precio $7.30
7, John Lennon, Título 271, Precio $7.90
Si desea reemplazar todas las ocurrencias de "Efectivo " con " Papelera ", use:
sed 's/Cash/Trash/' songs.txt > songs2.txt
Enlace de referencia:-Una guía rápida para usar comandos Sed en Linux
В системе macOS, как и в других системах BSD, следует использовать утилиту machine
:
$ arch
i386
$ machine
x86_64h
Утилита i386
вводит в заблуждение, если вы привыкли к утилите arch
в других системах. В macOS Mojave i386
означает, что она способна запускать 32-разрядное -программное обеспечение, скомпилированное для семейства процессоров Intel. Обратите внимание, что утилита arch
в macOS используется для совсем других целей по сравнению, например, с. Linux (см. его руководство ).
Вы также можете использовать uname -m
как в Linux:
$ uname -m
x86_64
Согласно в этом ответе SO , arch
проводится различие между PowerPC(ppc
)и Intel (i386
), а не между 32-битным -и 64-битным -ядром на x86. Таким образом, в этом контексте i386
означает процессор x86.
Проверьте вывод uname -m
, чтобы узнать тип вашей машины. (В Linux arch
эквивалентно uname -m
.)
См. также этот раздел вопросов и ответов .
Мне кажется, что использование "традиционных" утилит (, например. arch
, uname
,sw_vers
)для обнаружения аппаратного или программного обеспечения вашего Mac может быть не очень надежным. Это конечно несовместимо! Даже системные руководства изобилуют несоответствиями.
Это не значит, что вы не можете получить полезную информацию от этих утилит, это лишь означает, что если вы не знаете, что ищете, вы можете получить результаты, которые отличаются от того, что вы ищете. вы попадаете в другие системы.
Например:
$ arch
i386
Нет! (Если только вы не используете очень старый компьютер.)
Другой пример — версия ОС. man sw_vers
и man uname
сообщают о «Версии ОС» :
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.4
BuildVersion: 18E226
$ uname -v
Darwin Kernel Version 18.5.0.... # output snipped
И это хорошо -мы знаем, что нумерация версий ядра и дистрибутива различается, но системные руководства для обеих этих команд говорят, что вы получаете OS Version
. Понимание происхождения текущегоmacos
объясняет некоторые из них, но не объясняет, почему системные руководства непоследовательны.
Итак, на вопрос ОП о том, как получить четкую и достоверную информацию о системе, я считаю, что ответ должен заключаться в использовании system_profiler
как для аппаратного, так и для программного обеспечения:
$ system_profiler SPHardwareDataType
Hardware:
Hardware Overview:
Model Name: MacBook Pro
Model Identifier: MacBookPro13,3
Processor Name: Intel Core i7
Processor Speed: 2.9 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 256 KB
L3 Cache: 8 MB
Memory: 16 GB
Boot ROM Version: 254.0.0.0.0
SMC Version (system): 2.38f7
Serial Number (system): C02*********
Hardware UUID: ********-****-****-****-************
$ system_profiler SPSoftwareDataType
Software:
System Software Overview:
System Version: macOS 10.14.4 (18E226)
Kernel Version: Darwin 18.5.0
Boot Volume: Macintosh HD
Boot Mode: Normal
Computer Name: MacBook No 2
User Name: Seamus (seamus)
Secure Virtual Memory: Enabled
System Integrity Protection: Enabled
Time since boot: 13:13
Также похоже, что системное руководство для system_profiler
поддерживается в более актуальном состоянии.
И наконец, что касается главного вопроса:«Что означает [результат arch
] i386 в macOS Mojave?» .Ответ:К сожалению, это означает , что Apple не поддерживает должным образом свою документацию и/или приложения.