Извлечение строк, содержащих точную фразу который включает вкладку

, читаемый и лаконичный подход будет awk ] системная функция

awk -F',' 'system("mv " $1 " " $2)' mappingFile.csv

, которая запускает команду для каждой строки входного файла


краткое изложение команды

  • awk - утилиты UNIX, которая отлично подходит для обработки табличных данных. data
  • -F ',' " F ield separator" - это система с запятой
  • ("mv" $ 1 "" $ 2) запускается для каждой строки ввода файл
    • system (x) запустить x в подоболочке
    • $ 1 и $ 2 относятся к первому и второму столбцам соответственно
    • "mv" $ 1 "" $ 2 неявная конкатенация создает команду
  • mappingFile.csv , используйте этот входной файл
0
01.04.2018, 02:48
3 ответа

В ksh93/zsh/bash/mksh/FreeBSD sh:

grep $'^4\tH' filein.in | tail -n 1

Или в любой оболочке:

awk '/^4\tH/ { line=$0; }; END { if(line!="") print line; }' filein.in
4
28.01.2020, 02:16

Вы также можете перевернуть строку входного файла, используя tac, а затем получить первое совпадение

$ # add another \t after H if needed
$ tac ip.txt | grep -m1 $'^4\tH'
4   H   4

$ tac ip.txt | awk -F'\t' '$1=="4" && $2=="H"{print; exit}'
4   H   4
0
28.01.2020, 02:16

С гну сэд

sed '/^4\tH/h;$bA;N;D;:A;x;/^$/d' infile
1
28.01.2020, 02:16

Теги

Похожие вопросы