为什么我不能在Ubuntu上加入这两个文件?

时间:2018-12-07 12:44:16

标签: linux file

这是我要加入这两个文件的两个文件(其中一个是.txt,另一个是.tsv)

文件1(.txt文件):有两列

string_1  abc...
string_2  bcd...
string_3  cde...

文件2(.tsv文件):有两列

string_1  X...
string_2  Y...
string_3  Z...

我使用以下linux语句从命令行连接文件:

join -j 2 -o 1.1, 1.2, 1.3, 2.1 file.txt file.tsv

但是我在执行时收到此错误消息:

join: invalid file number in field spec: ‘’

1 个答案:

答案 0 :(得分:0)

这里似乎有几个问题。

首先,您要求使用字段2(class App extends Component { constructor() { super(); this.state = { term: 'write a number', value: '' }; } handleChange = event => { this.setState({ value: event.target.value }); }; validate = () => { this.setState({ term: parseInt(this.state.value) >= 18 ? 'You are old enough!' : 'You are not old enough!' }); }; render() { return ( <div style={{ textAlign: 'center' }}> <input type="text" onChange={this.handleChange} value={this.state.value} /> <br /> <p>Result</p> <br /> <p>{this.state.term}</p> <button type="submit" onClick={this.validate}> Submit </button> </div> ); } } )进行联接以加入文件,但是从您的输入数据来看,好像您实际上是想在字段1上联接。如果我使用示例输入并运行:

class Attendance(BaseModel):
    stu = models.ForeignKey(Students, verbose_name=_("Student"))

我没有任何输出,因为没有可连接的行。将其与运行的输出进行比较:

-j 2

这将导致:

join -j 2 file1.txt file2.txt

接下来,您对join file1.txt file2.txt 的论点看起来是错误的。 string_1 abc... X... string_2 bcd... Y... string_3 cde... Z... 选项需要一个不带空格的参数,例如:

-o

如果使用它,我们将得到:

-o

但是该参数 still 看起来是错误的,因为仅输入文件 有两列,而您尝试引用的是第三列 第一个文件(-o 1.1,1.2,1.3,2,1 )。由于字段1是 两个输入,将列$ join -o '1.1,1.2,1.3,2.1' file1.txt file2.txt string_1 abc... string_1 string_2 bcd... string_2 string_3 cde... string_3 包含在 输出(因为它将与1.3相同)。这使我们:

2.1

仅通过运行不带参数的1.1就能得到什么。