我有一个4x2矩阵文件:
204 4
504 7
204 5
404 8
我还有一个名为“ 204”,“ 504”,“ 204”和“ 404”的4个文件。因此,我想在相应目录内的文件中打印第二列的编号。
我想创建一个在'204'目录中包含'4'的文件,依此类推。
答案 0 :(得分:0)
cut -d
使您可以指定分隔符,例如空格字符。您可以使用它来解析文件内容(通过cat
命令)。
答案 1 :(得分:0)
3种方式
将LINE_NUMBER和COL_NUMBER替换为1、2、3 ...
awk:
$>awk '{if(NR==LINE_NUMBER) print $COL_NUMBER}' file.txt.
sed:
$>sed -n LINE_NUMBER file.txt | cut -d " " -f COL_NUMBER
头和尾:
$>head -n LINE_NUMBER file.txt | tail -n + LINE_NUMBER | cut -d " " -f COL_NUMBER
答案 2 :(得分:0)
将矩阵保存在名为file.txt
的文件中
▶ ll
total 8
-rw-r--r-- 1 noskillguy staff 24B May 23 23:41 file.txt
▶ cat file.txt
204 4
504 7
204 5
404 8
执行以下命令,将为其输入以上文件
▶ while read p; do declare -a arr=(`echo $p`); mkdir -p ${arr[1]}; echo ${arr[2]} > ${arr[1]}/${arr[2]}.txt ; done < file.txt
▶ tree
.
├── 204
│ ├── 4.txt
│ └── 5.txt
├── 404
│ └── 8.txt
├── 504
│ └── 7.txt
└── file.txt
3 directories, 5 files
▶ tail */*
==> 204/4.txt <==
4
==> 204/5.txt <==
5
==> 404/8.txt <==
8
==> 504/7.txt <==
7
我正在逐行读取file.txt,然后为每行declare -a arr=(`echo $p`)
创建一个数组,然后使用该数组的第一个对象创建目录mkdir -p ${arr[1]}
,然后使用第二个对象创建文件及其内容echo ${arr[2]} > ${arr[1]}/${arr[2]}.txt