2016-12-16 2 views
0

Предположим, у меня есть текстовый файл something.txt. написанное 4062,2016-12-31Tex отправки другой команды

Я хочу отправить «4062» в одной команде и «2016-12-31» в виде строки в другой команде в скрипте. Можно ли это сделать с помощью BASH-скриптов?

+0

Конечно может. Проблема в том, что есть много способов сделать что-то подобное, но точные детали очень сильно зависят от точного содержимого этого файла и того, что именно вы хотите с ним делать. В этом смысле вы можете изучить такие инструменты, как sed, awk и т. Д .; или просто общие учебные пособия по программированию оболочки; но не ожидайте, что сесть с вами, чтобы переварить вашу проблему в полной мере, чтобы научить вас, как ее решить. Мы помогаем с конкретными вопросами; а не с «мной видением, но не ключом, пожалуйста, заполните пробел». – GhostCat

+0

Что именно вы подразумеваете под «отправкой команды»? –

+0

как моя команда: «{print $ 2», 0 «$ 1», field1, field2 "} '. Я хочу отправить 4062 в поле1 и 2016-12-31 в поле2. Эта команда хранится в другом файле. –

ответ

0

Это будет работать в большинстве случаев, если вы не обрабатываете очень большой файл.

for line $(cat yourfile.txt) 
do 
    field1=$(echo $line | cut -f1 -d,) 
    field2=$(echo $line | cut -f2 -d,) 
    your_command_1 $field1 
    your_command_2 $field2 
done 
+0

'while read line; делать ... ; done

+0

как моя команда: «{print $ 2», 0 «$ 1», field1, field2 "} '. Я хочу отправить 4062 в поле1 и 2016-12-31 в поле2. Эта команда хранится в другом файле –

0
a=$(cat file.txt); IFS=',' list=($a) ; echo ${list[0]}; echo ${list[1]} 
+1

Хотя этот фрагмент кода может решить проблему, он не объясняет, почему и как он отвечает на вопрос. Пожалуйста, [укажите объяснение своего кода] (// meta.stackexchange.com/q/114762/269535), так как это действительно помогает улучшить качество вашего сообщения. ** Флагеры/рецензенты: ** [Для ответов только на код, таких как этот, нисходящий, не удалять!] (// meta.stackoverflow.com/a/260413/2747593) (Примечание: этот ответ может быть действительно достаточно просто, чтобы сделать объяснение и, таким образом, downvotes, ненужным. Возможно, вы захотите добавить объяснение, чтобы предотвратить появление флагов NAA/VLQ.) –

+0

Эй, как насчет образовательного эффекта мышления о том, как работает этот однострочный лайнер? Серьезно, это просто куча кода. –

1
IFS="," read -r a b < file 

echo "$a" 
echo "$b" 

Выход:

 
4062 
2016-12-31 
Смежные вопросы