Unix - нужно вырезать файл, в котором в качестве разделителя есть несколько пробелов - awk или вырезать?

Мне нужно получить записи из текстового файла в Unix. Разделитель - несколько пробелов. Например:

2U2133   1239  
1290fsdsf   3234

Отсюда, Мне нужно извлечь

1239  
3234

Разделителем для всех записей всегда будет 3 пробела.

Мне нужно сделать это в скрипте unix (.scr) и записать результат в другой файл или использовать его как вход для do -время цикла. Я пробовал следующее:

while read readline  
do  
        read_int=`echo "$readline"`  
        cnt_exc=`grep "$read_int" ${Directory path}/file1.txt| wc -l`  
if [ $cnt_exc -gt 0 ]  
then  
  int_1=0  
else  
  int_2=0  
fi  
done < awk -F'  ' '{ print $2 }' ${Directoty path}/test_file.txt  

test_file.txt - это входной файл, а file1.txt - это файл поиска. Но описанный выше способ не работает и дает мне синтаксические ошибки рядом с awk -F

. Я попытался записать вывод в файл. В командной строке работало следующее:

more test_file.txt | awk -F'   ' '{ print $2 }' > output.txt

Это работает и записывает записи в output.txt в командной строке. Но та же команда не работает в сценарии unix (это файл .scr)

Пожалуйста, дайте мне знать, где я ошибаюсь и как я могу решить эту проблему.

Спасибо,
scr) и записать вывод в другой файл или использовать его как ввод для цикла do-while. Я попробовал следующее:

while read readline  
do  
        read_int=`echo "$readline"`  
        cnt_exc=`grep "$read_int" ${Directory path}/file1.txt| wc -l`  
if [ $cnt_exc -gt 0 ]  
then  
  int_1=0  
else  
  int_2=0  
fi  
done < awk -F'  ' '{ print $2 }' ${Directoty path}/test_file.txt  

test_file.txt - это входной файл, а file1.txt - это файл поиска. Но описанный выше способ не работает и дает мне синтаксические ошибки рядом с awk -F

. Я попытался записать вывод в файл. В командной строке работало следующее:

more test_file.txt | awk -F'   ' '{ print $2 }' > output.txt

Это работает и записывает записи в output.txt в командной строке. Но та же команда не работает в сценарии unix (это файл .scr)

Пожалуйста, дайте мне знать, где я ошибаюсь и как я могу решить эту проблему.

Спасибо,
scr) и записать вывод в другой файл или использовать его как ввод для цикла do-while. Я пробовал следующее:

while read readline  
do  
        read_int=`echo "$readline"`  
        cnt_exc=`grep "$read_int" ${Directory path}/file1.txt| wc -l`  
if [ $cnt_exc -gt 0 ]  
then  
  int_1=0  
else  
  int_2=0  
fi  
done < awk -F'  ' '{ print $2 }' ${Directoty path}/test_file.txt  

test_file.txt - это входной файл, а file1.txt - это файл поиска. Но описанный выше способ не работает и дает мне синтаксические ошибки рядом с awk -F

. Я попытался записать вывод в файл. В командной строке работало следующее:

more test_file.txt | awk -F'   ' '{ print $2 }' > output.txt

Это работает и записывает записи в output.txt в командной строке. Но та же команда не работает в сценарии unix (это файл .scr)

Пожалуйста, дайте мне знать, где я ошибаюсь и как я могу решить эту проблему.

Спасибо,

more test_file.txt | awk -F'   ' '{ print $2 }' > output.txt

Это работает и записывает записи в output.txt в командной строке. Но та же команда не работает в сценарии unix (это файл .scr)

Пожалуйста, дайте мне знать, где я ошибаюсь и как я могу решить эту проблему.

Спасибо,

more test_file.txt | awk -F'   ' '{ print $2 }' > output.txt

Это работает и записывает записи в output.txt в командной строке. Но та же команда не работает в сценарии unix (это файл .scr)

Пожалуйста, дайте мне знать, где я ошибаюсь и как я могу решить эту проблему.

Спасибо,
Visakh

10
задан Adnan 6 December 2010 в 14:20
поделиться