Я изменил решение Андре 'Fi':
function Enum() {
var that = this;
for (var i in arguments) {
that[arguments[i]] = i;
}
this.name = function(value) {
for (var key in that) {
if (that[key] == value) {
return key;
}
}
};
this.exist = function(value) {
return (typeof that.name(value) !== "undefined");
};
if (Object.freeze) {
Object.freeze(that);
}
}
Тест:
var Color = new Enum('RED', 'GREEN', 'BLUE');
undefined
Color.name(Color.REDs)
undefined
Color.name(Color.RED)
"RED"
Color.exist(Color.REDs)
false
Color.exist(Color.RED)
true
paste
- объединить соответствующие или последующие строки файлы
вставить [-s] [-d список] файл ...
Утилита вставить
объединяет соответствующие строки данного ввода
файлы, заменяя все символы новой строки, кроме последнего файла, одним
символ табуляции и записывает полученные строки в стандартный вывод.
Вставить вы на полпути, но вам понадобится sed, чтобы добавить имя файла к словам
Поместите это в сценарий оболочки и передайте ему два файла в качестве аргументов
#!/bin/sh
paste $1 $2 | sed -e "s/^\([^ ]\+\)\s\+\([^ ]\)/$1_\1 $2_\2/"