我正在学习bash,我有一个包含500000行的文件,每个文件都有这种模式:
NNNNNNNNNNNNNN C
N =数字| C = char A-Z |第一个空格是一个标签,第二个是常规空间。
我想使用bash脚本从第二列数字( NNNNNN C )开始创建一个带有最后一部分的文件。我能够做到:
i=1
while [ $i -le 500000 ]
do
echo $i
sed $i"q;d" $1 | tail -c 9 >> file
((i++))
done
但这需要很长时间,因为它会逐行将每行写入文件。我怎么能更快地做到这一点?
由于
答案 0 :(得分:2)
您可以使用read
将每一行拆分为单词,然后打印出您想要的行:
while read a b c; do
echo "$b $c"
done < input_file > output_file
答案 1 :(得分:1)
试试这个
sed 's/^.*<T>//' file > outFile
其中<T>
是'\ t'或文字制表符char,具体取决于你的sed版本。
这将删除文件中每行第一个选项卡的所有内容,然后打印剩余的文件。
IHTH。
答案 2 :(得分:1)