我得到的是这样的:
working_dir
|-- samples
|-- table1.tbl
|-- table2.tbl
|-- table3.tbl
我想拥有的是这样的:
working_dir
|-- samples
| |-- table1.tbl
| |-- table2.tbl
| |-- table3.tbl
|-- table1.tbl
|-- table2.tbl
|-- table3.tbl
samples
目录中的.tbl文件将包含根目录中这些.tbl文件的前10行。
我试过
for FILE in `ls *.tbl`; do
NEWFILE="samples/$FILE"
if [ ! -f "$NEWFILE" ] ; then
touch "$NEWFILE"
fi
echo `head $FILE` > $NEWFILE
done
但samples
下的.tbl文件中的换行符丢失,10行中的内容被压缩到每个.tbl文件中的一行。
有任何帮助吗?感谢。
答案 0 :(得分:7)
for FILE in *.tbl; do
head "$FILE" > "samples/$FILE"
done
你的问题是由回音和反引号引起的。反引号将输出展平为一行,echo只输出该单行。
答案 1 :(得分:0)
你可以尝试这个:
#!/bin/bash
LIST=/path/to/file
find /absolute/path/to/dir -name "*.tbl" > /path/to/file
for FILE in $(cat /path/to/file); do
head "$FILE" > "/path/to/sample/$FILE"
done