echo() {
command echo -n "$@"
}
Использование команды
здесь означает запрос echo
(которая здесь встроена) вместо функции, которая в противном случае имела бы приоритет.
И поскольку здесь echo
также оказывается встроенным (не ищется в $ PATH
Кстати, поскольку встроенные команды имеют приоритет над командами файловой системы), вы также можете сделать:
echo() {
builtin echo -n "$@"
}
Последний подход предпочтительнее в zsh
, где команда echo
будет запускать вместо этого / bin / echo
(за исключением эмуляции sh
).
Между оболочками есть некоторые тонкие различия, но обычно порядок приоритета следующий:
$ PATH
(и порядок зависит от в порядке в $ PATH
и в хеш-таблице
, управляемой встроенной хеш-функцией
) Принимая во внимание, что псевдонимы и ключевые слова в синтаксисе оболочки ( для
, если
...), если они не указаны, рассматриваются перед ними.
Порядок 1
и 2
обратный в некоторых оболочках, таких как bash
или zsh
. bash
не позволяет определять функции с тем же именем, что и специальная встроенная функция при вызове как sh
.
El delimitador predeterminado para cut
es un carácter de tabulación -si desea cut
espacio -datos separados, deberá especificarlo usando el argumento -d
.
Su archivo de entrada parece usar múltiples espacios que lo hacen más difícil:
paste <(cut -d' ' -f5 file.txt) <(cut -d' ' -f3 file.txt)
1 10
2 11
3 12
4 13
5 14
o puede reemplazar los espacios por tabulaciones (eliminando las repeticiones)-tenga en cuenta que los campos se convierten en -f3
y -f2
porque su archivo tiene espacios en blanco iniciales:
paste <(tr -s ' ' '\t' < file.txt | cut -f3) <(tr -s ' ' '\t' < file.txt | cut -f2)
En este caso, sería más sencillo usar awk
, p.
awk '{print $2,$1}' file.txt
o
awk '{print $2,$1}' OFS='\t' file.txt
si desea una tabulación -salida separada (como la obtendría depaste
)ej.
$ awk '{print $2,$1}' OFS='\t' file.txt
1 10
2 11
3 12
4 13
5 14
Así que me di cuenta de lo que quería hacer con lo siguiente:
cut -d' ' -f1 file.txt > f1.txt
Para cortar y agregar la primera columna a un nuevo archivo f1.txt
cut -d' ' -f4 file.txt > f2.txt
Para cortar y agregar la segunda columna a un nuevo archivo f2.txt
paste f2.txt f1.txt > file.txt
Y finalmente para sobrescribir el archivo original.txt con columnas cambiadas.